LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-2.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 46.1 % 7455 3434
Test Date: 2026-05-11 19:44:49 Functions: 67.1 % 70 47
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    101360726 : tree_logical_inverted_value (tree t, tree *res_ops)
      11              : {
      12    101360726 :   const tree type = TREE_TYPE (t);
      13    101360726 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    101360726 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15     92814606 :   switch (TREE_CODE (t))
      16              :     {
      17       476069 :     case TRUTH_NOT_EXPR:
      18       476069 :       {
      19       476069 :         tree _p0 = TREE_OPERAND (t, 0);
      20       476069 :         {
      21       476069 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      22       476069 :           {
      23       476069 :             res_ops[0] = captures[0];
      24       476069 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 23, __FILE__, __LINE__, false);
      25              :             return true;
      26              :           }
      27              :         }
      28       155047 :         break;
      29              :       }
      30       155047 :     case BIT_NOT_EXPR:
      31       155047 :       {
      32       155047 :         tree _p0 = TREE_OPERAND (t, 0);
      33       155047 :         if (tree_truth_valued_p (_p0))
      34              :           {
      35        12088 :             {
      36        12088 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      37        12088 :               {
      38        12088 :                 res_ops[0] = captures[0];
      39        12088 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 24, __FILE__, __LINE__, false);
      40        12088 :                 return true;
      41              :               }
      42              :             }
      43              :           }
      44              :         break;
      45              :       }
      46      1316154 :     case EQ_EXPR:
      47      1316154 :       {
      48      1316154 :         tree _p0 = TREE_OPERAND (t, 0);
      49      1316154 :         tree _p1 = TREE_OPERAND (t, 1);
      50      1316154 :         if (integer_zerop (_p1))
      51              :           {
      52       524551 :             {
      53       524551 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      54       524551 :               {
      55       524551 :                 res_ops[0] = captures[0];
      56       524551 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 25, __FILE__, __LINE__, false);
      57       524551 :                 return true;
      58              :               }
      59              :             }
      60              :           }
      61              :         break;
      62              :       }
      63      2059400 :     case NE_EXPR:
      64      2059400 :       {
      65      2059400 :         tree _p0 = TREE_OPERAND (t, 0);
      66      2059400 :         tree _p1 = TREE_OPERAND (t, 1);
      67      2059400 :         if (tree_truth_valued_p (_p0))
      68              :           {
      69         2714 :             if (integer_truep (_p1))
      70              :               {
      71            0 :                 {
      72            0 :                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      73            0 :                   {
      74            0 :                     res_ops[0] = captures[0];
      75            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 26, __FILE__, __LINE__, false);
      76            0 :                     return true;
      77              :                   }
      78              :                 }
      79              :               }
      80              :           }
      81              :         break;
      82              :       }
      83       104949 :     case BIT_XOR_EXPR:
      84       104949 :       {
      85       104949 :         tree _p0 = TREE_OPERAND (t, 0);
      86       104949 :         tree _p1 = TREE_OPERAND (t, 1);
      87       104949 :         if (tree_truth_valued_p (_p0))
      88              :           {
      89        14752 :             if (integer_truep (_p1))
      90              :               {
      91            0 :                 {
      92            0 :                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      93            0 :                   {
      94            0 :                     res_ops[0] = captures[0];
      95            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 27, __FILE__, __LINE__, false);
      96            0 :                     return true;
      97              :                   }
      98              :                 }
      99              :               }
     100              :           }
     101              :         break;
     102              :       }
     103              :     default:;
     104              :     }
     105              :   return false;
     106              : }
     107              : 
     108              : tree
     109            3 : generic_simplify_3 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     110              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     111              :  const enum tree_code ARG_UNUSED (op))
     112              : {
     113            3 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     114            3 :   if (INTEGRAL_TYPE_P (type)
     115              : )
     116              :     {
     117            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail74;
     118            3 :       {
     119            3 :         tree res_op0;
     120            3 :         {
     121            3 :           tree _o1[2], _r1;
     122            3 :           _o1[0] = captures[1];
     123            3 :           _o1[1] = captures[4];
     124            3 :           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     125            3 :           res_op0 = _r1;
     126              :         }
     127            3 :         tree res_op1;
     128            3 :         res_op1 = captures[2];
     129            3 :         tree _r;
     130            3 :         _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
     131            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 51, __FILE__, __LINE__, true);
     132            3 :         return _r;
     133              :       }
     134            0 : next_after_fail74:;
     135              :     }
     136              :   return NULL_TREE;
     137              : }
     138              : 
     139              : tree
     140            0 : generic_simplify_11 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     141              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     142              :  const enum tree_code ARG_UNUSED (bit_op))
     143              : {
     144            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     145            0 :   if (bit_op == BIT_AND_EXPR
     146              : )
     147              :     {
     148            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail85;
     149            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail85;
     150            0 :       {
     151            0 :         tree _r;
     152            0 :         _r =  build_zero_cst (type);
     153            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 58, __FILE__, __LINE__, true);
     154            0 :         return _r;
     155              :       }
     156              : next_after_fail85:;
     157              :     }
     158              :   else
     159              :     {
     160            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail86;
     161            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail86;
     162            0 :       {
     163            0 :         tree _r;
     164            0 :         _r =  build_minus_one_cst (type);
     165            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 59, __FILE__, __LINE__, true);
     166            0 :         return _r;
     167              :       }
     168              : next_after_fail86:;
     169              :     }
     170              :   return NULL_TREE;
     171              : }
     172              : 
     173              : tree
     174            0 : generic_simplify_20 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     175              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     176              : {
     177            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     178            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail95;
     179            0 :   {
     180            0 :     tree res_op0;
     181            0 :     res_op0 = captures[0];
     182            0 :     tree res_op1;
     183            0 :     res_op1 = captures[1];
     184            0 :     tree _r;
     185            0 :     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     186            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 68, __FILE__, __LINE__, true);
     187              :     return _r;
     188              :   }
     189            0 : next_after_fail95:;
     190            0 :   return NULL_TREE;
     191              : }
     192              : 
     193              : tree
     194          731 : generic_simplify_27 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     195              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     196              : {
     197          731 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     198          731 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
     199              : )
     200              :     {
     201          731 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail102;
     202          731 :       {
     203          731 :         tree res_op0;
     204          731 :         {
     205          731 :           tree _o1[2], _r1;
     206          731 :           {
     207          731 :             tree _o2[1], _r2;
     208          731 :             _o2[0] = captures[2];
     209          731 :             if (TREE_TYPE (_o2[0]) != type)
     210              :               {
     211            0 :                 _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
     212              :               }
     213              :             else
     214              :               _r2 = _o2[0];
     215          731 :             _o1[0] = _r2;
     216              :           }
     217          731 :           _o1[1] = captures[3];
     218          731 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     219          731 :           res_op0 = _r1;
     220              :         }
     221          731 :         tree _r;
     222          731 :         _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     223          731 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 75, __FILE__, __LINE__, true);
     224          731 :         return _r;
     225              :       }
     226            0 : next_after_fail102:;
     227              :     }
     228              :   return NULL_TREE;
     229              : }
     230              : 
     231              : tree
     232           24 : generic_simplify_36 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     233              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     234              :  const enum tree_code ARG_UNUSED (op),
     235              :  const enum tree_code ARG_UNUSED (cmp),
     236              :  const enum tree_code ARG_UNUSED (icmp))
     237              : {
     238           24 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     239           24 :   if (invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
     240              : )
     241              :     {
     242           24 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail113;
     243           24 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail113;
     244           24 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail113;
     245           24 :       {
     246           24 :         tree res_op0;
     247           24 :         res_op0 = captures[1];
     248           24 :         tree res_op1;
     249           24 :         res_op1 = captures[4];
     250           24 :         tree res_op2;
     251           24 :         res_op2 = captures[7];
     252           24 :         tree _r;
     253           24 :         _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
     254           24 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 85, __FILE__, __LINE__, true);
     255           24 :         return _r;
     256              :       }
     257              : next_after_fail113:;
     258              :     }
     259              :   return NULL_TREE;
     260              : }
     261              : 
     262              : tree
     263           19 : generic_simplify_42 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     264              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     265              :  const enum tree_code ARG_UNUSED (op))
     266              : {
     267           19 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     268           38 :   if (INTEGRAL_TYPE_P (type)
     269           19 :  && operand_equal_p (captures[2], captures[6], 0)
     270           38 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
     271              : )
     272              :     {
     273            0 :       {
     274            0 :  tree t = type;
     275            0 :  if (!TYPE_OVERFLOW_WRAPS (t))
     276            0 :  t = unsigned_type_for (t);
     277            0 :  wide_int c = wi::add (wi::to_wide (captures[3]), wi::to_wide (captures[7]));
     278            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail120;
     279            0 :           if (TREE_SIDE_EFFECTS (captures[7])) goto next_after_fail120;
     280            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail120;
     281            0 :           {
     282            0 :             tree res_op0;
     283            0 :             {
     284            0 :               tree _o1[2], _r1;
     285            0 :               {
     286            0 :                 tree _o2[1], _r2;
     287            0 :                 _o2[0] = captures[2];
     288            0 :                 if (TREE_TYPE (_o2[0]) != t)
     289              :                   {
     290            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     291              :                   }
     292              :                 else
     293              :                   _r2 = _o2[0];
     294            0 :                 _o1[0] = _r2;
     295              :               }
     296            0 :               _o1[1] =  wide_int_to_tree (t, c);
     297            0 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     298            0 :               res_op0 = _r1;
     299              :             }
     300            0 :             tree _r;
     301            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     302            0 :             if (TREE_SIDE_EFFECTS (captures[6]))
     303            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
     304            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, true);
     305            0 :             return _r;
     306              :           }
     307            0 : next_after_fail120:;
     308            0 :       }
     309              :     }
     310              :   return NULL_TREE;
     311              : }
     312              : 
     313              : tree
     314           66 : generic_simplify_54 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     315              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     316              : {
     317           66 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     318           66 :   if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type)
     319              : )
     320              :     {
     321           66 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail135;
     322           66 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail135;
     323           66 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail135;
     324           66 :       {
     325           66 :         tree res_op0;
     326           66 :         res_op0 = captures[0];
     327           66 :         tree _r;
     328           66 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
     329           66 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 103, __FILE__, __LINE__, true);
     330           66 :         return _r;
     331              :       }
     332              : next_after_fail135:;
     333              :     }
     334              :   return NULL_TREE;
     335              : }
     336              : 
     337              : tree
     338       217868 : generic_simplify_60 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     339              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     340              : {
     341       217868 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     342       217868 :   if (!TYPE_SATURATING (type)
     343              : )
     344              :     {
     345       217868 :       if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     346       217868 :  && !TYPE_OVERFLOW_SANITIZED (type)
     347              : )
     348              :         {
     349       215668 :           {
     350       215668 :  tree t1 = type;
     351       215668 :  if (INTEGRAL_TYPE_P (type)
     352       365055 :  && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
     353         4247 :  t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
     354       215668 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail141;
     355       215668 :               {
     356       215668 :                 tree res_op0;
     357       215668 :                 {
     358       215668 :                   tree _o1[2], _r1;
     359       215668 :                   {
     360       215668 :                     tree _o2[1], _r2;
     361       215668 :                     _o2[0] = captures[0];
     362       215668 :                     if (TREE_TYPE (_o2[0]) != t1)
     363              :                       {
     364         3978 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     365              :                       }
     366              :                     else
     367              :                       _r2 = _o2[0];
     368       215668 :                     _o1[0] = _r2;
     369              :                   }
     370       215668 :                   {
     371       215668 :                     tree _o2[1], _r2;
     372       215668 :                     _o2[0] = captures[1];
     373       215668 :                     if (TREE_TYPE (_o2[0]) != t1)
     374              :                       {
     375          958 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     376              :                       }
     377              :                     else
     378              :                       _r2 = _o2[0];
     379       215668 :                     _o1[1] = _r2;
     380              :                   }
     381       215668 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     382       215668 :                   res_op0 = _r1;
     383              :                 }
     384       215668 :                 tree _r;
     385       215668 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     386       215668 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 109, __FILE__, __LINE__, true);
     387       215668 :                 return _r;
     388              :               }
     389            0 : next_after_fail141:;
     390              :           }
     391              :         }
     392              :     }
     393              :   return NULL_TREE;
     394              : }
     395              : 
     396              : tree
     397      3705394 : generic_simplify_72 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     398              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     399              : {
     400      3705394 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     401      3705394 :   if (!TYPE_SATURATING (type)
     402      3705394 :  && (!FLOAT_TYPE_P (type) || flag_associative_math)
     403              : )
     404              :     {
     405      3705394 :       if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
     406              : )
     407              :         {
     408      7410788 :           if (TREE_CODE (type) == INTEGER_TYPE
     409      3705394 :  && wi::neg_p (wi::to_wide (captures[3]))
     410     11116182 :  && wi::to_wide (captures[3]) != wi::min_value (TYPE_PRECISION (type), SIGNED)
     411              : )
     412              :             {
     413       914846 :               {
     414       914846 :  wide_int c0 = wi::to_wide (captures[1]);
     415       914846 :  wide_int c2 = wi::to_wide (captures[3]);
     416       914846 :  wide_int c2_abs = wi::abs (c2);
     417       914846 :                   if (wi::multiple_of_p (c2_abs, c0, TYPE_SIGN (type))
     418              : )
     419              :                     {
     420       448562 :                       {
     421       448562 :  wide_int div_res = wi::sdiv_trunc (c2, c0);
     422       448562 :  tree div_cst = wide_int_to_tree (type, div_res);
     423       448562 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail162;
     424       448562 :                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail162;
     425       448562 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail162;
     426       448562 :                           {
     427       448562 :                             tree res_op0;
     428       448562 :                             {
     429       448562 :                               tree _o1[2], _r1;
     430       448562 :                               _o1[0] = captures[2];
     431       448562 :                               _o1[1] =  div_cst;
     432       448562 :                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     433       448562 :                               res_op0 = _r1;
     434              :                             }
     435       448562 :                             tree res_op1;
     436       448562 :                             res_op1 = captures[1];
     437       448562 :                             tree _r;
     438       448562 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
     439       448562 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 130, __FILE__, __LINE__, true);
     440       448562 :                             return _r;
     441              :                           }
     442            0 : next_after_fail162:;
     443       448562 :                       }
     444              :                     }
     445       914846 :               }
     446              :             }
     447              :         }
     448              :     }
     449              :   return NULL_TREE;
     450              : }
     451              : 
     452              : tree
     453            0 : generic_simplify_82 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     454              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     455              : {
     456            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     457            0 :   if (TREE_CODE (captures[1]) == SSA_NAME && num_imm_uses (captures[1]) == 2
     458              : )
     459              :     {
     460            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail173;
     461            0 :       {
     462            0 :         if (! tree_invariant_p (captures[2])) goto next_after_fail173;
     463            0 :         tree res_op0;
     464            0 :         {
     465            0 :           tree _o1[2], _r1;
     466            0 :           {
     467            0 :             tree _o2[3], _r2;
     468            0 :             _o2[0] = unshare_expr (captures[2]);
     469            0 :             _o2[1] = captures[2];
     470            0 :             _o2[2] = captures[4];
     471            0 :             _r2 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1], _o2[2]);
     472            0 :             _o1[0] = _r2;
     473              :           }
     474            0 :           _o1[1] = captures[3];
     475            0 :           _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     476            0 :           res_op0 = _r1;
     477              :         }
     478            0 :         tree res_op1;
     479            0 :         res_op1 = captures[5];
     480            0 :         tree _r;
     481            0 :         _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     482            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 141, __FILE__, __LINE__, true);
     483            0 :         return _r;
     484              :       }
     485              : next_after_fail173:;
     486              :     }
     487              :   return NULL_TREE;
     488              : }
     489              : 
     490              : tree
     491            1 : generic_simplify_89 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     492              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     493              : {
     494            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     495            1 :   if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
     496            1 :  && !TYPE_SATURATING (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
     497            1 :  && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[0]))
     498            2 :  && !TYPE_SATURATING (TREE_TYPE (captures[0]))
     499              : )
     500              :     {
     501            1 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail180;
     502            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail180;
     503            1 :       {
     504            1 :         tree res_op0;
     505            1 :         {
     506            1 :           tree _o1[1], _r1;
     507            1 :           {
     508            1 :             tree _o2[2], _r2;
     509            1 :             _o2[0] = captures[1];
     510            1 :             _o2[1] = captures[2];
     511            1 :             _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     512            1 :             _o1[0] = _r2;
     513              :           }
     514            1 :           if (TREE_TYPE (_o1[0]) != type)
     515              :             {
     516            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     517              :             }
     518              :           else
     519              :             _r1 = _o1[0];
     520            1 :           res_op0 = _r1;
     521              :         }
     522            1 :         tree _r;
     523            1 :         _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     524            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 148, __FILE__, __LINE__, true);
     525            1 :         return _r;
     526              :       }
     527              : next_after_fail180:;
     528              :     }
     529              :   return NULL_TREE;
     530              : }
     531              : 
     532              : tree
     533        10061 : generic_simplify_102 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     534              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     535              : {
     536        10061 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     537        10061 :   if (!TYPE_SATURATING (type)
     538              : )
     539              :     {
     540        10061 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     541        20122 :  && !FIXED_POINT_TYPE_P (type)
     542              : )
     543              :         {
     544        10061 :           if (INTEGRAL_TYPE_P (type)
     545        10061 :  && TYPE_OVERFLOW_UNDEFINED (type)
     546         3109 :  && TREE_CODE (captures[1]) != INTEGER_CST
     547        11094 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     548              : )
     549              :             {
     550         1033 :               {
     551         1033 :  tree utype = unsigned_type_for (type);
     552         1033 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail197;
     553         1033 :                   {
     554         1033 :                     tree res_op0;
     555         1033 :                     {
     556         1033 :                       tree _o1[1], _r1;
     557         1033 :                       {
     558         1033 :                         tree _o2[1], _r2;
     559         1033 :                         _o2[0] = captures[1];
     560         1033 :                         if (TREE_TYPE (_o2[0]) != utype)
     561              :                           {
     562         1033 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     563              :                           }
     564              :                         else
     565              :                           _r2 = _o2[0];
     566         1033 :                         _o1[0] = _r2;
     567              :                       }
     568         1033 :                       _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     569         1033 :                       res_op0 = _r1;
     570              :                     }
     571         1033 :                     tree _r;
     572         1033 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     573         1033 :                     if (TREE_SIDE_EFFECTS (captures[2]))
     574            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     575         1033 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 164, __FILE__, __LINE__, true);
     576         1033 :                     return _r;
     577              :                   }
     578            0 : next_after_fail197:;
     579              :               }
     580              :             }
     581              :           else
     582              :             {
     583         9028 :               if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     584         9028 :  || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     585         2343 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
     586              : )
     587              :                 {
     588         8759 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail198;
     589         8759 :                   {
     590         8759 :                     tree res_op0;
     591         8759 :                     {
     592         8759 :                       tree _o1[1], _r1;
     593         8759 :                       _o1[0] = captures[1];
     594         8759 :                       if (TREE_TYPE (_o1[0]) != type)
     595              :                         {
     596         8759 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     597              :                         }
     598              :                       else
     599              :                         _r1 = _o1[0];
     600         8759 :                       res_op0 = _r1;
     601              :                     }
     602         8759 :                     tree _r;
     603         8759 :                     _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     604         8759 :                     if (TREE_SIDE_EFFECTS (captures[2]))
     605            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     606         8759 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 165, __FILE__, __LINE__, true);
     607         8759 :                     return _r;
     608              :                   }
     609            0 : next_after_fail198:;
     610              :                 }
     611              :             }
     612              :         }
     613              :     }
     614              :   return NULL_TREE;
     615              : }
     616              : 
     617              : tree
     618            0 : generic_simplify_115 (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 (UNLIKELY (!dbg_cnt (match))) goto next_after_fail212;
     623            0 :   {
     624            0 :     tree res_op0;
     625            0 :     res_op0 = captures[0];
     626            0 :     tree res_op1;
     627            0 :     {
     628            0 :       tree _o1[1], _r1;
     629            0 :       _o1[0] = captures[2];
     630            0 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     631            0 :       res_op1 = _r1;
     632              :     }
     633            0 :     tree _r;
     634            0 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     635            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 178, __FILE__, __LINE__, true);
     636              :     return _r;
     637              :   }
     638            0 : next_after_fail212:;
     639            0 :   return NULL_TREE;
     640              : }
     641              : 
     642              : tree
     643            0 : generic_simplify_123 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     644              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     645              : {
     646            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     647            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail220;
     648            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail220;
     649            0 :   {
     650            0 :     tree res_op0;
     651            0 :     res_op0 = captures[0];
     652            0 :     tree res_op1;
     653            0 :     res_op1 = captures[3];
     654            0 :     tree _r;
     655            0 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     656            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 184, __FILE__, __LINE__, true);
     657              :     return _r;
     658              :   }
     659              : next_after_fail220:;
     660              :   return NULL_TREE;
     661              : }
     662              : 
     663              : tree
     664        18399 : generic_simplify_134 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     665              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     666              : {
     667        18399 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     668        18399 :   {
     669        18399 :  bool wascmp;
     670        18399 :       if ((bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
     671        18399 :  || bitwise_inverted_equal_p (captures[1], captures[2], wascmp))
     672        18399 :  && (!wascmp || element_precision (type) == 1)
     673              : )
     674              :         {
     675            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail231;
     676            0 :           {
     677            0 :             tree _r;
     678            0 :             _r =  build_all_ones_cst (TREE_TYPE (captures[0]));
     679            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
     680            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     681            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
     682            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     683            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
     684            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     685            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 191, __FILE__, __LINE__, true);
     686            0 :             return _r;
     687              :           }
     688            0 : next_after_fail231:;
     689              :         }
     690              :   }
     691        18399 :   return NULL_TREE;
     692              : }
     693              : 
     694              : tree
     695            0 : generic_simplify_145 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     696              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     697              :  const enum tree_code ARG_UNUSED (bitop),
     698              :  const enum tree_code ARG_UNUSED (rbitop))
     699              : {
     700            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     701            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail246;
     702            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail246;
     703            0 :   {
     704            0 :     tree _r;
     705            0 :     _r = captures[2];
     706            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
     707            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     708            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 196, __FILE__, __LINE__, true);
     709              :     return _r;
     710              :   }
     711              : next_after_fail246:;
     712              :   return NULL_TREE;
     713              : }
     714              : 
     715              : tree
     716            0 : generic_simplify_151 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     717              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     718              :  const enum tree_code ARG_UNUSED (cmp),
     719              :  const enum tree_code ARG_UNUSED (icmp))
     720              : {
     721            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     722            0 :   if (integer_zerop (captures[5])
     723            0 :  && invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
     724              : )
     725              :     {
     726            0 :       if (integer_onep (captures[4])
     727              : )
     728              :         {
     729            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail253;
     730            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail253;
     731            0 :           {
     732            0 :             tree res_op0;
     733            0 :             {
     734            0 :               tree _o1[3], _r1;
     735            0 :               _o1[0] = captures[1];
     736            0 :               _o1[1] = captures[6];
     737            0 :               _o1[2] = captures[9];
     738            0 :               _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
     739            0 :               res_op0 = _r1;
     740              :             }
     741            0 :             tree res_op1;
     742            0 :             res_op1 = captures[4];
     743            0 :             tree _r;
     744            0 :             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     745            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 202, __FILE__, __LINE__, true);
     746            0 :             return _r;
     747              :           }
     748              : next_after_fail253:;
     749              :         }
     750              :       else
     751              :         {
     752            0 :           if (integer_minus_onep (captures[4])
     753              : )
     754              :             {
     755            0 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail254;
     756            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail254;
     757            0 :               {
     758            0 :                 tree res_op0;
     759            0 :                 res_op0 = captures[1];
     760            0 :                 tree res_op1;
     761            0 :                 res_op1 = captures[6];
     762            0 :                 tree res_op2;
     763            0 :                 res_op2 = captures[9];
     764            0 :                 tree _r;
     765            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
     766            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 203, __FILE__, __LINE__, true);
     767            0 :                 return _r;
     768              :               }
     769              : next_after_fail254:;
     770              :             }
     771              :         }
     772              :     }
     773              :   else
     774              :     {
     775            0 :       if (integer_zerop (captures[4])
     776            0 :  && invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
     777              : )
     778              :         {
     779            0 :           if (integer_onep (captures[5])
     780              : )
     781              :             {
     782            0 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail255;
     783            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail255;
     784            0 :               {
     785            0 :                 tree res_op0;
     786            0 :                 {
     787            0 :                   tree _o1[3], _r1;
     788            0 :                   _o1[0] = captures[1];
     789            0 :                   _o1[1] = captures[9];
     790            0 :                   _o1[2] = captures[6];
     791            0 :                   _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
     792            0 :                   res_op0 = _r1;
     793              :                 }
     794            0 :                 tree res_op1;
     795            0 :                 res_op1 = captures[5];
     796            0 :                 tree _r;
     797            0 :                 _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     798            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 204, __FILE__, __LINE__, true);
     799            0 :                 return _r;
     800              :               }
     801              : next_after_fail255:;
     802              :             }
     803              :           else
     804              :             {
     805            0 :               if (integer_minus_onep (captures[5])
     806              : )
     807              :                 {
     808            0 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail256;
     809            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail256;
     810            0 :                   {
     811            0 :                     tree res_op0;
     812            0 :                     res_op0 = captures[1];
     813            0 :                     tree res_op1;
     814            0 :                     res_op1 = captures[9];
     815            0 :                     tree res_op2;
     816            0 :                     res_op2 = captures[6];
     817            0 :                     tree _r;
     818            0 :                     _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
     819            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 205, __FILE__, __LINE__, true);
     820            0 :                     return _r;
     821              :                   }
     822              : next_after_fail256:;
     823              :                 }
     824              :             }
     825              :         }
     826              :     }
     827              :   return NULL_TREE;
     828              : }
     829              : 
     830              : tree
     831           46 : generic_simplify_173 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     832              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     833              :  const enum tree_code ARG_UNUSED (logic),
     834              :  const enum tree_code ARG_UNUSED (op),
     835              :  const enum tree_code ARG_UNUSED (ext))
     836              : {
     837           46 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     838           92 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     839           92 :  && TREE_CODE (captures[1]) != INTEGER_CST
     840              : )
     841              :     {
     842            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail310;
     843            0 :       {
     844            0 :         tree res_op0;
     845            0 :         res_op0 = captures[1];
     846            0 :         tree res_op1;
     847            0 :         {
     848            0 :           tree _o1[2], _r1;
     849            0 :           _o1[0] = captures[2];
     850            0 :           _o1[1] = captures[4];
     851            0 :           _r1 = fold_build2_loc (loc, ext, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     852            0 :           res_op1 = _r1;
     853              :         }
     854            0 :         tree _r;
     855            0 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     856            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 231, __FILE__, __LINE__, true);
     857            0 :         return _r;
     858              :       }
     859            0 : next_after_fail310:;
     860              :     }
     861              :   return NULL_TREE;
     862              : }
     863              : 
     864              : tree
     865            0 : generic_simplify_178 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     866              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     867              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
     868              : {
     869            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     870            0 :   if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
     871              : )
     872              :     {
     873            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail315;
     874            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail315;
     875            0 :       {
     876            0 :         tree res_op0;
     877            0 :         {
     878            0 :           tree _o1[1], _r1;
     879            0 :           _o1[0] = captures[0];
     880            0 :           _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     881            0 :           res_op0 = _r1;
     882              :         }
     883            0 :         tree _r;
     884            0 :         _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     885            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 235, __FILE__, __LINE__, true);
     886            0 :         return _r;
     887              :       }
     888              : next_after_fail315:;
     889              :     }
     890              :   return NULL_TREE;
     891              : }
     892              : 
     893              : tree
     894            3 : generic_simplify_183 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     895              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     896              : {
     897            3 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     898            3 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail320;
     899            3 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail320;
     900            3 :   {
     901            3 :     tree _r;
     902            3 :     _r =  build_zero_cst (type);
     903            3 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 239, __FILE__, __LINE__, true);
     904              :     return _r;
     905              :   }
     906              : next_after_fail320:;
     907              :   return NULL_TREE;
     908              : }
     909              : 
     910              : tree
     911        36070 : generic_simplify_187 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     912              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     913              : {
     914        36070 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     915        36070 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     916        36070 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     917              : )
     918              :     {
     919        33453 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail326;
     920        33453 :       {
     921        33453 :         tree res_op0;
     922        33453 :         {
     923        33453 :           tree _o1[1], _r1;
     924        33453 :           _o1[0] = captures[0];
     925        33453 :           if (TREE_TYPE (_o1[0]) != type)
     926              :             {
     927          772 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     928              :             }
     929              :           else
     930              :             _r1 = _o1[0];
     931        33453 :           res_op0 = _r1;
     932              :         }
     933        33453 :         tree res_op1;
     934        33453 :         {
     935        33453 :           tree _o1[1], _r1;
     936        33453 :           {
     937        33453 :             tree _o2[1], _r2;
     938        33453 :             _o2[0] = captures[1];
     939        33453 :             _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
     940        33453 :             _o1[0] = _r2;
     941              :           }
     942        33453 :           if (TREE_TYPE (_o1[0]) != type)
     943              :             {
     944            7 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     945              :             }
     946              :           else
     947              :             _r1 = _o1[0];
     948        33453 :           res_op1 = _r1;
     949              :         }
     950        33453 :         tree _r;
     951        33453 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
     952        33453 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 242, __FILE__, __LINE__, true);
     953        33453 :         return _r;
     954              :       }
     955            0 : next_after_fail326:;
     956              :     }
     957              :   return NULL_TREE;
     958              : }
     959              : 
     960              : tree
     961            2 : generic_simplify_195 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     962              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     963              :  const combined_fn ARG_UNUSED (SQRT_ALL))
     964              : {
     965            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     966            2 :   if (flag_unsafe_math_optimizations
     967              : )
     968              :     {
     969            2 :       if (!tree_expr_maybe_signaling_nan_p (captures[1])
     970              : )
     971              :         {
     972            2 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail335;
     973            2 :           {
     974            2 :             tree _r;
     975            2 :             _r = captures[1];
     976            2 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 250, __FILE__, __LINE__, true);
     977            2 :             return _r;
     978              :           }
     979            0 : next_after_fail335:;
     980              :         }
     981              :     }
     982              :   return NULL_TREE;
     983              : }
     984              : 
     985              : tree
     986            9 : generic_simplify_198 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     987              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     988              :  const combined_fn ARG_UNUSED (LDEXP))
     989              : {
     990            9 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     991            9 :   if (flag_unsafe_math_optimizations
     992              : )
     993              :     {
     994            9 :       if (real_equal (TREE_REAL_CST_PTR (captures[1]), &dconst1)
     995              : )
     996              :         {
     997            9 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail338;
     998            9 :           {
     999            9 :             tree res_op0;
    1000            9 :             res_op0 = captures[0];
    1001            9 :             tree res_op1;
    1002            9 :             res_op1 = captures[2];
    1003            9 :             tree _r;
    1004            9 :             _r = maybe_build_call_expr_loc (loc, LDEXP, type, 2, res_op0, res_op1);
    1005            9 :             if (!_r)
    1006            0 :               goto next_after_fail338;
    1007            9 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1008            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1009            9 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 253, __FILE__, __LINE__, true);
    1010            9 :             return _r;
    1011              :           }
    1012              : next_after_fail338:;
    1013              :         }
    1014              :     }
    1015              :   return NULL_TREE;
    1016              : }
    1017              : 
    1018              : tree
    1019          169 : generic_simplify_205 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1020              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1021              :  const enum tree_code ARG_UNUSED (op))
    1022              : {
    1023          169 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1024          338 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    1025          338 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
    1026          169 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
    1027              :  && (CONSTANT_CLASS_P (captures[2]) || (single_use (captures[1]) && single_use (captures[0])))
    1028          169 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    1029          507 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    1030              : )
    1031              :     {
    1032          169 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail345;
    1033          169 :       {
    1034          169 :         tree res_op0;
    1035          169 :         res_op0 = captures[2];
    1036          169 :         tree res_op1;
    1037          169 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[2]));
    1038          169 :         tree _r;
    1039          169 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1040          169 :         if (TREE_SIDE_EFFECTS (captures[3]))
    1041            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1042          169 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 260, __FILE__, __LINE__, true);
    1043          169 :         return _r;
    1044              :       }
    1045            0 : next_after_fail345:;
    1046              :     }
    1047              :   return NULL_TREE;
    1048              : }
    1049              : 
    1050              : tree
    1051        11553 : generic_simplify_217 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1052              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1053              :  const enum tree_code ARG_UNUSED (op))
    1054              : {
    1055        11553 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1056        11553 :   if (tree_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    1057        11553 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
    1058        11553 :  && (CONSTANT_CLASS_P (captures[3]) || (single_use (captures[1]) && single_use (captures[0])))
    1059              : )
    1060              :     {
    1061        11553 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail373;
    1062        11553 :       {
    1063        11553 :         tree res_op0;
    1064        11553 :         res_op0 = captures[3];
    1065        11553 :         tree res_op1;
    1066        11553 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[3]));
    1067        11553 :         tree _r;
    1068        11553 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1069        11553 :         if (TREE_SIDE_EFFECTS (captures[2]))
    1070            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1071        11553 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 287, __FILE__, __LINE__, true);
    1072        11553 :         return _r;
    1073              :       }
    1074            0 : next_after_fail373:;
    1075              :     }
    1076              :   return NULL_TREE;
    1077              : }
    1078              : 
    1079              : tree
    1080           21 : generic_simplify_225 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1081              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1082              :  const enum tree_code ARG_UNUSED (cmp))
    1083              : {
    1084           21 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1085           21 :   if (TREE_INT_CST_LOW (captures[1]) & 1
    1086              : )
    1087              :     {
    1088            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail381;
    1089            2 :       {
    1090            2 :         tree _r;
    1091            2 :         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1092            2 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1093            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1094            2 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1095            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1096            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 294, __FILE__, __LINE__, true);
    1097            2 :         return _r;
    1098              :       }
    1099            0 : next_after_fail381:;
    1100              :     }
    1101              :   return NULL_TREE;
    1102              : }
    1103              : 
    1104              : tree
    1105           45 : generic_simplify_231 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1106              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1107              :  const enum tree_code ARG_UNUSED (cmp))
    1108              : {
    1109           45 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1110           45 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1111              : )
    1112              :     {
    1113            0 :       {
    1114            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
    1115            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail389;
    1116            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail389;
    1117            0 :           {
    1118            0 :             tree res_op0;
    1119            0 :             {
    1120            0 :               tree _o1[2], _r1;
    1121            0 :               {
    1122            0 :                 tree _o2[1], _r2;
    1123            0 :                 _o2[0] = captures[0];
    1124            0 :                 if (TREE_TYPE (_o2[0]) != utype)
    1125              :                   {
    1126            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    1127              :                   }
    1128              :                 else
    1129              :                   _r2 = _o2[0];
    1130            0 :                 _o1[0] = _r2;
    1131              :               }
    1132            0 :               {
    1133            0 :                 tree _o2[1], _r2;
    1134            0 :                 _o2[0] = captures[1];
    1135            0 :                 if (TREE_TYPE (_o2[0]) != utype)
    1136              :                   {
    1137            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    1138              :                   }
    1139              :                 else
    1140              :                   _r2 = _o2[0];
    1141            0 :                 _o1[1] = _r2;
    1142              :               }
    1143            0 :               _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1144            0 :               res_op0 = _r1;
    1145              :             }
    1146            0 :             tree res_op1;
    1147            0 :             res_op1 =  build_zero_cst (utype);
    1148            0 :             tree _r;
    1149            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1150            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 302, __FILE__, __LINE__, true);
    1151            0 :             return _r;
    1152              :           }
    1153              : next_after_fail389:;
    1154              :       }
    1155              :     }
    1156              :   return NULL_TREE;
    1157              : }
    1158              : 
    1159              : tree
    1160          124 : generic_simplify_239 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1161              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1162              :  const enum tree_code ARG_UNUSED (rotate),
    1163              :  const enum tree_code ARG_UNUSED (invrot),
    1164              :  const enum tree_code ARG_UNUSED (cmp))
    1165              : {
    1166          124 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1167          124 :   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail407;
    1168          124 :   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail407;
    1169          124 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail407;
    1170          124 :   {
    1171          124 :     tree res_op0;
    1172          124 :     res_op0 = captures[0];
    1173          124 :     tree res_op1;
    1174          124 :     res_op1 =  const_binop (invrot, TREE_TYPE (captures[0]), captures[2], captures[1]);
    1175          124 :     tree _r;
    1176          124 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1177          124 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 320, __FILE__, __LINE__, true);
    1178              :     return _r;
    1179              :   }
    1180              : next_after_fail407:;
    1181              :   return NULL_TREE;
    1182              : }
    1183              : 
    1184              : tree
    1185        25548 : generic_simplify_245 (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        25548 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1192        25548 :   if (types_match (type, TREE_TYPE (captures[0]))
    1193              : )
    1194              :     {
    1195        24883 :       {
    1196        24883 :  enum tree_code ic = invert_tree_comparison
    1197        24883 :  (cmp, HONOR_NANS (captures[1]));
    1198        24883 :           if (ic == icmp
    1199              : )
    1200              :             {
    1201        24644 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail413;
    1202        24644 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail413;
    1203        24644 :               {
    1204        24644 :                 tree res_op0;
    1205        24644 :                 res_op0 = captures[1];
    1206        24644 :                 tree res_op1;
    1207        24644 :                 res_op1 = captures[2];
    1208        24644 :                 tree _r;
    1209        24644 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1210        24644 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 326, __FILE__, __LINE__, true);
    1211        24644 :                 return _r;
    1212              :               }
    1213              : next_after_fail413:;
    1214              :             }
    1215              :           else
    1216              :             {
    1217          239 :               if (ic == ncmp
    1218              : )
    1219              :                 {
    1220            0 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail414;
    1221            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail414;
    1222            0 :                   {
    1223            0 :                     tree res_op0;
    1224            0 :                     res_op0 = captures[1];
    1225            0 :                     tree res_op1;
    1226            0 :                     res_op1 = captures[2];
    1227            0 :                     tree _r;
    1228            0 :                     _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1229            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 327, __FILE__, __LINE__, true);
    1230            0 :                     return _r;
    1231              :                   }
    1232              : next_after_fail414:;
    1233              :                 }
    1234              :             }
    1235              :       }
    1236              :     }
    1237              :   return NULL_TREE;
    1238              : }
    1239              : 
    1240              : tree
    1241      6177137 : generic_simplify_255 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1242              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1243              :  const enum tree_code ARG_UNUSED (cmp))
    1244              : {
    1245      6177137 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1246      6177137 :   if (REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[1]))
    1247              : )
    1248              :     {
    1249         1708 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail429;
    1250         1708 :       {
    1251         1708 :         tree res_op0;
    1252         1708 :         res_op0 = captures[0];
    1253         1708 :         tree res_op1;
    1254         1708 :         res_op1 =  build_real (TREE_TYPE (captures[1]), dconst0);
    1255         1708 :         tree _r;
    1256         1708 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1257         1708 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1258            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1259         1708 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 340, __FILE__, __LINE__, true);
    1260         1708 :         return _r;
    1261              :       }
    1262            0 : next_after_fail429:;
    1263              :     }
    1264              :   else
    1265              :     {
    1266      6175429 :       if (TREE_CODE (captures[0]) == REAL_CST
    1267      6175429 :  && REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[0]))
    1268              : )
    1269              :         {
    1270            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail430;
    1271            0 :           {
    1272            0 :             tree res_op0;
    1273            0 :             res_op0 =  build_real (TREE_TYPE (captures[0]), dconst0);
    1274            0 :             tree res_op1;
    1275            0 :             res_op1 = captures[1];
    1276            0 :             tree _r;
    1277            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1278            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    1279            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1280            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 341, __FILE__, __LINE__, true);
    1281            0 :             return _r;
    1282              :           }
    1283            0 : next_after_fail430:;
    1284              :         }
    1285              :       else
    1286              :         {
    1287      6175429 :           if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
    1288          834 :  && (cmp == EQ_EXPR || cmp == NE_EXPR || !flag_trapping_math)
    1289          258 :  && !tree_expr_signaling_nan_p (captures[1])
    1290      6175657 :  && !tree_expr_maybe_signaling_nan_p (captures[0])
    1291              : )
    1292              :             {
    1293          228 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail431;
    1294          228 :               {
    1295          228 :                 tree _r;
    1296          228 :                 _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1297          228 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1298            6 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1299          228 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    1300            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1301          228 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 342, __FILE__, __LINE__, true);
    1302          228 :                 return _r;
    1303              :               }
    1304            0 : next_after_fail431:;
    1305              :             }
    1306              :           else
    1307              :             {
    1308      6175201 :               if (TREE_CODE (captures[0]) == REAL_CST
    1309         2011 :  && REAL_VALUE_ISNAN (TREE_REAL_CST (captures[0]))
    1310         1817 :  && (cmp == EQ_EXPR || cmp == NE_EXPR || !flag_trapping_math)
    1311            0 :  && !tree_expr_signaling_nan_p (captures[0])
    1312      6175201 :  && !tree_expr_signaling_nan_p (captures[1])
    1313              : )
    1314              :                 {
    1315            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail432;
    1316            0 :                   {
    1317            0 :                     tree _r;
    1318            0 :                     _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1319            0 :                     if (TREE_SIDE_EFFECTS (captures[0]))
    1320            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1321            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1322            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1323            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 343, __FILE__, __LINE__, true);
    1324            0 :                     return _r;
    1325              :                   }
    1326            0 : next_after_fail432:;
    1327              :                 }
    1328              :               else
    1329              :                 {
    1330      6175201 :                   if (REAL_VALUE_ISINF (TREE_REAL_CST (captures[1]))
    1331      6879668 :  && MODE_HAS_INFINITIES (TYPE_MODE (TREE_TYPE (captures[1])))
    1332              : )
    1333              :                     {
    1334       234850 :                       {
    1335       234850 :  REAL_VALUE_TYPE max;
    1336       234850 :  enum tree_code code = cmp;
    1337       234850 :  bool neg = REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]));
    1338       234850 :  if (neg)
    1339        33230 :  code = swap_tree_comparison (code);
    1340       234850 :                           if (code == GT_EXPR
    1341       234850 :  && !(HONOR_NANS (captures[0]) && flag_trapping_math)
    1342              : )
    1343              :                             {
    1344            7 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail433;
    1345            7 :                               {
    1346            7 :                                 tree _r;
    1347            7 :                                 _r =  constant_boolean_node (false, type);
    1348            7 :                                 if (TREE_SIDE_EFFECTS (captures[0]))
    1349            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1350            7 :                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1351            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1352            7 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 344, __FILE__, __LINE__, true);
    1353        67038 :                                 return _r;
    1354              :                               }
    1355            0 : next_after_fail433:;
    1356              :                             }
    1357              :                           else
    1358              :                             {
    1359       234843 :                               if (code == LE_EXPR
    1360              : )
    1361              :                                 {
    1362        32122 :                                   if (! HONOR_NANS (captures[0])
    1363              : )
    1364              :                                     {
    1365            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail434;
    1366            0 :                                       {
    1367            0 :                                         tree _r;
    1368            0 :                                         _r =  constant_boolean_node (true, type);
    1369            0 :                                         if (TREE_SIDE_EFFECTS (captures[0]))
    1370            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1371            0 :                                         if (TREE_SIDE_EFFECTS (captures[1]))
    1372            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1373            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 345, __FILE__, __LINE__, true);
    1374            0 :                                         return _r;
    1375              :                                       }
    1376            0 : next_after_fail434:;
    1377              :                                     }
    1378              :                                   else
    1379              :                                     {
    1380        32122 :                                       if (!flag_trapping_math
    1381              : )
    1382              :                                         {
    1383            2 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail435;
    1384            2 :                                           {
    1385            2 :                                             if (! tree_invariant_p (captures[0])) goto next_after_fail435;
    1386            0 :                                             tree res_op0;
    1387            0 :                                             res_op0 = unshare_expr (captures[0]);
    1388            0 :                                             tree res_op1;
    1389            0 :                                             res_op1 = captures[0];
    1390            0 :                                             tree _r;
    1391            0 :                                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    1392            0 :                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1393            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1394            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 346, __FILE__, __LINE__, true);
    1395            0 :                                             return _r;
    1396              :                                           }
    1397       167812 : next_after_fail435:;
    1398              :                                         }
    1399              :                                     }
    1400              :                                 }
    1401              :                               else
    1402              :                                 {
    1403       135489 :                                   if ((code == EQ_EXPR && !(HONOR_NANS (captures[0]) && flag_trapping_math))
    1404       338174 :  || code == GE_EXPR
    1405              : )
    1406              :                                     {
    1407          140 :                                       {
    1408          140 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1409          140 :                                           if (neg
    1410              : )
    1411              :                                             {
    1412           55 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail436;
    1413           55 :                                               {
    1414           55 :                                                 tree res_op0;
    1415           55 :                                                 res_op0 = captures[0];
    1416           55 :                                                 tree res_op1;
    1417           55 :                                                 res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1418           55 :                                                 tree _r;
    1419           55 :                                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    1420           55 :                                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1421            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1422           55 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 347, __FILE__, __LINE__, true);
    1423           55 :                                                 return _r;
    1424              :                                               }
    1425            0 : next_after_fail436:;
    1426              :                                             }
    1427              :                                           else
    1428              :                                             {
    1429           85 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail437;
    1430           85 :                                               {
    1431           85 :                                                 tree res_op0;
    1432           85 :                                                 res_op0 = captures[0];
    1433           85 :                                                 tree res_op1;
    1434           85 :                                                 res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1435           85 :                                                 tree _r;
    1436           85 :                                                 _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    1437           85 :                                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1438            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1439           85 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 348, __FILE__, __LINE__, true);
    1440           85 :                                                 return _r;
    1441              :                                               }
    1442            0 : next_after_fail437:;
    1443              :                                             }
    1444              :                                       }
    1445              :                                     }
    1446              :                                   else
    1447              :                                     {
    1448       202581 :                                       if (code == LT_EXPR
    1449              : )
    1450              :                                         {
    1451           90 :                                           {
    1452           90 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1453           90 :                                               if (neg
    1454              : )
    1455              :                                                 {
    1456           26 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail438;
    1457           26 :                                                   {
    1458           26 :                                                     tree res_op0;
    1459           26 :                                                     res_op0 = captures[0];
    1460           26 :                                                     tree res_op1;
    1461           26 :                                                     res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1462           26 :                                                     tree _r;
    1463           26 :                                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1464           26 :                                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1465            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1466           26 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 349, __FILE__, __LINE__, true);
    1467           26 :                                                     return _r;
    1468              :                                                   }
    1469            0 : next_after_fail438:;
    1470              :                                                 }
    1471              :                                               else
    1472              :                                                 {
    1473           64 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail439;
    1474           64 :                                                   {
    1475           64 :                                                     tree res_op0;
    1476           64 :                                                     res_op0 = captures[0];
    1477           64 :                                                     tree res_op1;
    1478           64 :                                                     res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1479           64 :                                                     tree _r;
    1480           64 :                                                     _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1481           64 :                                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1482            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1483           64 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 350, __FILE__, __LINE__, true);
    1484           64 :                                                     return _r;
    1485              :                                                   }
    1486            0 : next_after_fail439:;
    1487              :                                                 }
    1488              :                                           }
    1489              :                                         }
    1490              :                                       else
    1491              :                                         {
    1492       202491 :                                           if (code == NE_EXPR
    1493              : )
    1494              :                                             {
    1495        66801 :                                               {
    1496        66801 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1497        66801 :                                                   if (! HONOR_NANS (captures[0])
    1498              : )
    1499              :                                                     {
    1500            0 :                                                       if (neg
    1501              : )
    1502              :                                                         {
    1503            0 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail440;
    1504            0 :                                                           {
    1505            0 :                                                             tree res_op0;
    1506            0 :                                                             res_op0 = captures[0];
    1507            0 :                                                             tree res_op1;
    1508            0 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1509            0 :                                                             tree _r;
    1510            0 :                                                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1511            0 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1512            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1513            0 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 351, __FILE__, __LINE__, true);
    1514            0 :                                                             return _r;
    1515              :                                                           }
    1516            0 : next_after_fail440:;
    1517              :                                                         }
    1518              :                                                       else
    1519              :                                                         {
    1520            0 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail441;
    1521            0 :                                                           {
    1522            0 :                                                             tree res_op0;
    1523            0 :                                                             res_op0 = captures[0];
    1524            0 :                                                             tree res_op1;
    1525            0 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1526            0 :                                                             tree _r;
    1527            0 :                                                             _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1528            0 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1529            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1530            0 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 352, __FILE__, __LINE__, true);
    1531            0 :                                                             return _r;
    1532              :                                                           }
    1533            0 : next_after_fail441:;
    1534              :                                                         }
    1535              :                                                     }
    1536              :                                                   else
    1537              :                                                     {
    1538        66801 :                                                       if (neg
    1539              : )
    1540              :                                                         {
    1541          560 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail442;
    1542          560 :                                                           {
    1543          560 :                                                             tree res_op0;
    1544          560 :                                                             res_op0 = captures[0];
    1545          560 :                                                             tree res_op1;
    1546          560 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1547          560 :                                                             tree _r;
    1548          560 :                                                             _r = fold_build2_loc (loc, UNGE_EXPR, type, res_op0, res_op1);
    1549          560 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1550            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1551          560 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 353, __FILE__, __LINE__, true);
    1552          560 :                                                             return _r;
    1553              :                                                           }
    1554            0 : next_after_fail442:;
    1555              :                                                         }
    1556              :                                                       else
    1557              :                                                         {
    1558        66241 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail443;
    1559        66241 :                                                           {
    1560        66241 :                                                             tree res_op0;
    1561        66241 :                                                             res_op0 = captures[0];
    1562        66241 :                                                             tree res_op1;
    1563        66241 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1564        66241 :                                                             tree _r;
    1565        66241 :                                                             _r = fold_build2_loc (loc, UNLE_EXPR, type, res_op0, res_op1);
    1566        66241 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1567            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1568        66241 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 354, __FILE__, __LINE__, true);
    1569        66241 :                                                             return _r;
    1570              :                                                           }
    1571            0 : next_after_fail443:;
    1572              :                                                         }
    1573              :                                                     }
    1574              :                                               }
    1575              :                                             }
    1576              :                                         }
    1577              :                                     }
    1578              :                                 }
    1579              :                             }
    1580              :                       }
    1581              :                     }
    1582              :                 }
    1583              :             }
    1584              :         }
    1585              :     }
    1586              :   return NULL_TREE;
    1587              : }
    1588              : 
    1589              : tree
    1590            0 : generic_simplify_298 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1591              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1592              :  const enum tree_code ARG_UNUSED (cmp))
    1593              : {
    1594            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1595            0 :   if (VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (captures[0])))
    1596            0 :  && can_compare_p (cmp == EQ_EXPR ? EQ : NE, TYPE_MODE (TREE_TYPE (captures[0])),
    1597              :  ccp_jump)
    1598              : )
    1599              :     {
    1600            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail561;
    1601            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail561;
    1602            0 :       {
    1603            0 :         tree res_op0;
    1604            0 :         res_op0 = captures[0];
    1605            0 :         tree res_op1;
    1606            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    1607            0 :         tree _r;
    1608            0 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1609            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 455, __FILE__, __LINE__, true);
    1610            0 :         return _r;
    1611              :       }
    1612              : next_after_fail561:;
    1613              :     }
    1614              :   return NULL_TREE;
    1615              : }
    1616              : 
    1617              : tree
    1618            0 : generic_simplify_303 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1619              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1620              :  const combined_fn ARG_UNUSED (copysigns))
    1621              : {
    1622            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1623            0 :   if (!REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
    1624              : )
    1625              :     {
    1626            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail567;
    1627            0 :       {
    1628            0 :         tree res_op0;
    1629            0 :         res_op0 = captures[0];
    1630            0 :         tree _r;
    1631            0 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    1632            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1633            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1634            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 461, __FILE__, __LINE__, true);
    1635            0 :         return _r;
    1636              :       }
    1637            0 : next_after_fail567:;
    1638              :     }
    1639              :   return NULL_TREE;
    1640              : }
    1641              : 
    1642              : tree
    1643            7 : generic_simplify_308 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1644              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1645              :  const enum tree_code ARG_UNUSED (div))
    1646              : {
    1647            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1648           14 :   if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
    1649            0 :  && (!VECTOR_TYPE_P (type)
    1650            0 :  || target_supports_op_p (type, RSHIFT_EXPR, optab_vector)
    1651            0 :  || target_supports_op_p (type, RSHIFT_EXPR, optab_scalar))
    1652            7 :  && (useless_type_conversion_p (type, TREE_TYPE (captures[2]))
    1653            0 :  || (element_precision (type) >= element_precision (TREE_TYPE (captures[2]))
    1654            0 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    1655            0 :  || (element_precision (type)
    1656            0 :  == element_precision (TREE_TYPE (captures[2])))
    1657            0 :  || (INTEGRAL_TYPE_P (type)
    1658            0 :  && (tree_nonzero_bits (captures[0])
    1659            7 :  & wi::mask (element_precision (TREE_TYPE (captures[2])) - 1,
    1660              :  true,
    1661            7 :  element_precision (type))) == 0))))
    1662              : )
    1663              :     {
    1664            0 :       if (!VECTOR_TYPE_P (type)
    1665            0 :  && useless_type_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    1666            0 :  && element_precision (TREE_TYPE (captures[1])) < element_precision (type)
    1667              : )
    1668              :         {
    1669            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail572;
    1670            0 :           {
    1671            0 :             tree res_op0;
    1672            0 :             {
    1673            0 :               tree _o1[2], _r1;
    1674            0 :               _o1[0] = captures[1];
    1675            0 :               _o1[1] = captures[3];
    1676            0 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1677            0 :               res_op0 = _r1;
    1678              :             }
    1679            0 :             tree _r;
    1680            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1681            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1682            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1683            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 466, __FILE__, __LINE__, true);
    1684            0 :             return _r;
    1685              :           }
    1686            0 : next_after_fail572:;
    1687              :         }
    1688              :       else
    1689              :         {
    1690            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail573;
    1691            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail573;
    1692            0 :           {
    1693            0 :             tree res_op0;
    1694            0 :             res_op0 = captures[0];
    1695            0 :             tree res_op1;
    1696            0 :             res_op1 = captures[3];
    1697            0 :             tree _r;
    1698            0 :             _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
    1699            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1700            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1701            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 467, __FILE__, __LINE__, true);
    1702            0 :             return _r;
    1703              :           }
    1704              : next_after_fail573:;
    1705              :         }
    1706              :     }
    1707              :   return NULL_TREE;
    1708              : }
    1709              : 
    1710              : tree
    1711           52 : generic_simplify_326 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1712              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1713              :  const enum tree_code ARG_UNUSED (mod))
    1714              : {
    1715           52 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1716           52 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail593;
    1717           52 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail593;
    1718           52 :   {
    1719           52 :     tree _r;
    1720           52 :     _r = captures[0];
    1721           52 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 485, __FILE__, __LINE__, true);
    1722              :     return _r;
    1723              :   }
    1724              : next_after_fail593:;
    1725              :   return NULL_TREE;
    1726              : }
    1727              : 
    1728              : tree
    1729            5 : generic_simplify_334 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1730              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1731              :  const combined_fn ARG_UNUSED (SINH),
    1732              :  const combined_fn ARG_UNUSED (COSH),
    1733              :  const combined_fn ARG_UNUSED (TANH))
    1734              : {
    1735            5 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1736            5 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1737              : )
    1738              :     {
    1739            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail603;
    1740            3 :       {
    1741            3 :         tree res_op0;
    1742            3 :         res_op0 = captures[1];
    1743            3 :         tree _r;
    1744            3 :         _r = maybe_build_call_expr_loc (loc, TANH, type, 1, res_op0);
    1745            3 :         if (!_r)
    1746            0 :           goto next_after_fail603;
    1747            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 495, __FILE__, __LINE__, true);
    1748            3 :         return _r;
    1749              :       }
    1750              : next_after_fail603:;
    1751              :     }
    1752              :   return NULL_TREE;
    1753              : }
    1754              : 
    1755              : tree
    1756       157213 : generic_simplify_342 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1757              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1758              :  const enum tree_code ARG_UNUSED (cmp))
    1759              : {
    1760       157213 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1761       157213 :   {
    1762       157213 :  tree from_type = TREE_TYPE (captures[0]);
    1763       157213 :  tree c1_type = TREE_TYPE (captures[1]), c2_type = TREE_TYPE (captures[2]);
    1764       157213 :  enum tree_code code = ERROR_MARK;
    1765       157213 :  if (integer_zerop (captures[1])
    1766        62279 :  && INTEGRAL_TYPE_P (from_type)
    1767        61789 :  && (cmp == GE_EXPR || cmp == LT_EXPR)
    1768        16848 :  && TYPE_UNSIGNED (from_type)
    1769         1728 :  && !TYPE_UNSIGNED (c1_type)
    1770         1728 :  && TYPE_PRECISION (from_type) == TYPE_PRECISION (c1_type)
    1771          587 :  && int_fits_type_p (captures[2], from_type)
    1772       157800 :  && (types_match (c2_type, from_type)
    1773            0 :  || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type)
    1774            0 :  && (TYPE_UNSIGNED (from_type)
    1775            0 :  || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type)))))
    1776              :  {
    1777          587 :  tree_code ncmp = cmp == GE_EXPR ? LE_EXPR : GT_EXPR;
    1778          587 :  widest_int c1 = wi::mask<widest_int>(TYPE_PRECISION (type) - 1, 0);
    1779          587 :  code = minmax_from_comparison (ncmp, captures[0], c1, wi::to_widest (captures[2]));
    1780          587 :  }
    1781          587 :  if (code == ERROR_MARK
    1782       157208 :  && INTEGRAL_TYPE_P (from_type)
    1783       156718 :  && int_fits_type_p (captures[2], from_type)
    1784       156717 :  && (types_match (c1_type, from_type)
    1785         6525 :  || (TYPE_PRECISION (c1_type) > TYPE_PRECISION (from_type)
    1786            0 :  && (TYPE_UNSIGNED (from_type)
    1787            0 :  || TYPE_SIGN (c1_type) == TYPE_SIGN (from_type))))
    1788       150779 :  && (types_match (c2_type, from_type)
    1789        58329 :  || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type)
    1790        18863 :  && (TYPE_UNSIGNED (from_type)
    1791          710 :  || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type)))))
    1792              :  {
    1793       110104 :  if (cmp != EQ_EXPR)
    1794       110092 :  code = minmax_from_comparison (cmp, captures[0], captures[1], captures[0], captures[2]);
    1795           12 :  else if (int_fits_type_p (captures[1], from_type))
    1796              :  code = EQ_EXPR;
    1797              :  }
    1798       157201 :       if (code == MAX_EXPR
    1799              : )
    1800              :         {
    1801        19533 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail611;
    1802        19533 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail611;
    1803        19533 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail611;
    1804        19533 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail611;
    1805        19533 :           {
    1806        19533 :             tree res_op0;
    1807        19533 :             {
    1808        19533 :               tree _o1[2], _r1;
    1809        19533 :               _o1[0] = captures[0];
    1810        19533 :               {
    1811        19533 :                 tree _o2[1], _r2;
    1812        19533 :                 _o2[0] = captures[2];
    1813        19533 :                 if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
    1814              :                   {
    1815          316 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
    1816              :                   }
    1817              :                 else
    1818              :                   _r2 = _o2[0];
    1819        19533 :                 _o1[1] = _r2;
    1820              :               }
    1821        19533 :               _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1822        19533 :               res_op0 = _r1;
    1823              :             }
    1824        19533 :             tree _r;
    1825        19533 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1826        19533 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 503, __FILE__, __LINE__, true);
    1827        19533 :             return _r;
    1828              :           }
    1829              : next_after_fail611:;
    1830              :         }
    1831              :       else
    1832              :         {
    1833       137680 :           if (code == MIN_EXPR
    1834              : )
    1835              :             {
    1836          257 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail612;
    1837          257 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail612;
    1838          257 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail612;
    1839          257 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail612;
    1840          257 :               {
    1841          257 :                 tree res_op0;
    1842          257 :                 {
    1843          257 :                   tree _o1[2], _r1;
    1844          257 :                   _o1[0] = captures[0];
    1845          257 :                   {
    1846          257 :                     tree _o2[1], _r2;
    1847          257 :                     _o2[0] = captures[2];
    1848          257 :                     if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
    1849              :                       {
    1850          100 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
    1851              :                       }
    1852              :                     else
    1853              :                       _r2 = _o2[0];
    1854          257 :                     _o1[1] = _r2;
    1855              :                   }
    1856          257 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1857          257 :                   res_op0 = _r1;
    1858              :                 }
    1859          257 :                 tree _r;
    1860          257 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1861          257 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 504, __FILE__, __LINE__, true);
    1862          257 :                 return _r;
    1863              :               }
    1864              : next_after_fail612:;
    1865              :             }
    1866              :           else
    1867              :             {
    1868       137423 :               if (code == EQ_EXPR
    1869              : )
    1870              :                 {
    1871           12 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail613;
    1872           12 :                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail613;
    1873           12 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail613;
    1874           12 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail613;
    1875           12 :                   {
    1876           12 :                     if (! tree_invariant_p (captures[1])) goto next_after_fail613;
    1877           12 :                     tree res_op0;
    1878           12 :                     {
    1879           12 :                       tree _o1[3], _r1;
    1880           12 :                       {
    1881           12 :                         tree _o2[2], _r2;
    1882           12 :                         _o2[0] = captures[0];
    1883           12 :                         {
    1884           12 :                           tree _o3[1], _r3;
    1885           12 :                           _o3[0] = unshare_expr (captures[1]);
    1886           12 :                           if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
    1887              :                             {
    1888            0 :                               _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
    1889              :                             }
    1890              :                           else
    1891              :                             _r3 = _o3[0];
    1892           12 :                           _o2[1] = _r3;
    1893              :                         }
    1894           12 :                         _r2 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o2[0], _o2[1]);
    1895           12 :                         _o1[0] = _r2;
    1896              :                       }
    1897           12 :                       {
    1898           12 :                         tree _o2[1], _r2;
    1899           12 :                         _o2[0] = captures[1];
    1900           12 :                         if (TREE_TYPE (_o2[0]) != from_type)
    1901              :                           {
    1902            0 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, from_type, _o2[0]);
    1903              :                           }
    1904              :                         else
    1905              :                           _r2 = _o2[0];
    1906           12 :                         _o1[1] = _r2;
    1907              :                       }
    1908           12 :                       {
    1909           12 :                         tree _o2[1], _r2;
    1910           12 :                         _o2[0] = captures[2];
    1911           12 :                         if (TREE_TYPE (_o2[0]) != from_type)
    1912              :                           {
    1913            7 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, from_type, _o2[0]);
    1914              :                           }
    1915              :                         else
    1916              :                           _r2 = _o2[0];
    1917           12 :                         _o1[2] = _r2;
    1918              :                       }
    1919           12 :                       _r1 = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
    1920           12 :                       res_op0 = _r1;
    1921              :                     }
    1922           12 :                     tree _r;
    1923           12 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1924           12 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 505, __FILE__, __LINE__, true);
    1925           12 :                     return _r;
    1926              :                   }
    1927              : next_after_fail613:;
    1928              :                 }
    1929              :             }
    1930              :         }
    1931              :   }
    1932              :   return NULL_TREE;
    1933              : }
    1934              : 
    1935              : tree
    1936            0 : generic_simplify_383 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1937              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1938              :  const enum tree_code ARG_UNUSED (legt))
    1939              : {
    1940            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1941            0 :   if (!HONOR_NANS (captures[0])
    1942              : )
    1943              :     {
    1944            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail664;
    1945            0 :       {
    1946            0 :         tree _r;
    1947            0 :         _r =  constant_boolean_node (legt == LE_EXPR, type);
    1948            0 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1949            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1950            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1951            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1952            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 554, __FILE__, __LINE__, true);
    1953            0 :         return _r;
    1954              :       }
    1955            0 : next_after_fail664:;
    1956              :     }
    1957              :   return NULL_TREE;
    1958              : }
    1959              : 
    1960              : tree
    1961          536 : generic_simplify_390 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1962              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1963              :  const enum tree_code ARG_UNUSED (cmp))
    1964              : {
    1965          536 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1966          536 :   if (wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1])))
    1967              : )
    1968              :     {
    1969          536 :       {
    1970          536 :  wi::overflow_type ovf;
    1971          536 :  wide_int prod = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[1]),
    1972         1072 :  TYPE_SIGN (TREE_TYPE (captures[1])), &ovf);
    1973          536 :           if (ovf
    1974              : )
    1975              :             {
    1976            0 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail671;
    1977            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail671;
    1978            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail671;
    1979            0 :               {
    1980            0 :                 tree _r;
    1981            0 :                 _r =  constant_boolean_node (wi::lt_p (wi::to_wide (captures[2]), 0,
    1982            0 :  TYPE_SIGN (TREE_TYPE (captures[2])))
    1983            0 :  != (cmp == LT_EXPR || cmp == LE_EXPR), type);
    1984            0 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1985            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1986            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 561, __FILE__, __LINE__, true);
    1987            0 :                 return _r;
    1988              :               }
    1989            0 : next_after_fail671:;
    1990              :             }
    1991              :           else
    1992              :             {
    1993          536 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail672;
    1994          536 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail672;
    1995          536 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail672;
    1996          536 :               {
    1997          536 :                 tree res_op0;
    1998          536 :                 res_op0 = captures[0];
    1999          536 :                 tree res_op1;
    2000          536 :                 res_op1 =  wide_int_to_tree (TREE_TYPE (captures[0]), prod);
    2001          536 :                 tree _r;
    2002          536 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2003          536 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 562, __FILE__, __LINE__, true);
    2004          536 :                 return _r;
    2005              :               }
    2006            0 : next_after_fail672:;
    2007              :             }
    2008          536 :       }
    2009              :     }
    2010              :   return NULL_TREE;
    2011              : }
    2012              : 
    2013              : tree
    2014            0 : generic_simplify_403 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2015              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2016              :  const enum tree_code ARG_UNUSED (op),
    2017              :  const enum tree_code ARG_UNUSED (cmp))
    2018              : {
    2019            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2020            0 :   {
    2021            0 :  bool ok = true;
    2022            0 :  HOST_WIDE_INT val = 0;
    2023            0 :  if (!tree_fits_shwi_p (captures[3]))
    2024              :  ok = false;
    2025              :  else
    2026              :  {
    2027            0 :  val = tree_to_shwi (captures[3]);
    2028            0 :  if (op == GT_EXPR || op == LE_EXPR)
    2029              :  {
    2030            0 :  if (val == HOST_WIDE_INT_MAX)
    2031              :  ok = false;
    2032              :  else
    2033            0 :  val++;
    2034              :  }
    2035              :  }
    2036            0 :  HOST_WIDE_INT zero_val = tree_to_shwi (captures[2]);
    2037            0 :  tree type0 = TREE_TYPE (captures[1]);
    2038            0 :  int prec = TYPE_PRECISION (type0);
    2039            0 :  if (prec > MAX_FIXED_MODE_SIZE)
    2040            0 :  ok = false;
    2041            0 :       if (val <= 0
    2042              : )
    2043              :         {
    2044            0 :           if (ok && zero_val >= val
    2045              : )
    2046              :             {
    2047            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail721;
    2048            0 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail721;
    2049            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail721;
    2050            0 :               {
    2051            0 :                 tree _r;
    2052            0 :                 _r =  constant_boolean_node (cmp == EQ_EXPR ? true : false, type);
    2053            0 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    2054            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2055            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 594, __FILE__, __LINE__, true);
    2056            0 :                 return _r;
    2057              :               }
    2058              : next_after_fail721:;
    2059              :             }
    2060              :         }
    2061              :       else
    2062              :         {
    2063            0 :           if (val >= prec
    2064              : )
    2065              :             {
    2066            0 :               if (ok && zero_val < val
    2067              : )
    2068              :                 {
    2069            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail722;
    2070            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail722;
    2071            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail722;
    2072            0 :                   {
    2073            0 :                     tree _r;
    2074            0 :                     _r =  constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
    2075            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    2076            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2077            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 595, __FILE__, __LINE__, true);
    2078            0 :                     return _r;
    2079              :                   }
    2080              : next_after_fail722:;
    2081              :                 }
    2082              :             }
    2083              :           else
    2084              :             {
    2085            0 :               if (ok && (zero_val < 0 || zero_val >= prec)
    2086              : )
    2087              :                 {
    2088            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail723;
    2089            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail723;
    2090            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail723;
    2091            0 :                   {
    2092            0 :                     tree res_op0;
    2093            0 :                     {
    2094            0 :                       tree _o1[2], _r1;
    2095            0 :                       _o1[0] = captures[1];
    2096            0 :                       _o1[1] =  wide_int_to_tree (type0,
    2097            0 :  wi::mask (val, false, prec));
    2098            0 :                       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2099            0 :                       res_op0 = _r1;
    2100              :                     }
    2101            0 :                     tree res_op1;
    2102            0 :                     res_op1 =  build_zero_cst (type0);
    2103            0 :                     tree _r;
    2104            0 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2105            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 596, __FILE__, __LINE__, true);
    2106            0 :                     return _r;
    2107              :                   }
    2108              : next_after_fail723:;
    2109              :                 }
    2110              :             }
    2111              :         }
    2112              :   }
    2113              :   return NULL_TREE;
    2114              : }
    2115              : 
    2116              : tree
    2117           11 : generic_simplify_417 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2118              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2119              : {
    2120           11 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2121           11 :   if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type))
    2122              : )
    2123              :     {
    2124           11 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail741;
    2125           11 :       {
    2126           11 :         tree res_op0;
    2127           11 :         {
    2128           11 :           tree _o1[1], _r1;
    2129           11 :           _o1[0] = captures[0];
    2130           11 :           if (TREE_TYPE (_o1[0]) != type)
    2131              :             {
    2132            8 :               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    2133              :             }
    2134              :           else
    2135              :             _r1 = _o1[0];
    2136           11 :           res_op0 = _r1;
    2137              :         }
    2138           11 :         tree res_op1;
    2139           11 :         {
    2140           11 :           tree _o1[2], _r1;
    2141           11 :           _o1[0] =  build_minus_one_cst (type);
    2142           11 :           _o1[1] = captures[1];
    2143           11 :           _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2144           11 :           res_op1 = _r1;
    2145              :         }
    2146           11 :         tree _r;
    2147           11 :         _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2148           11 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 610, __FILE__, __LINE__, true);
    2149           11 :         return _r;
    2150              :       }
    2151            0 : next_after_fail741:;
    2152              :     }
    2153              :   return NULL_TREE;
    2154              : }
    2155              : 
    2156              : tree
    2157          267 : generic_simplify_426 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2158              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2159              :  const combined_fn ARG_UNUSED (bswap))
    2160              : {
    2161          267 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2162          267 :   if (BITS_PER_UNIT == 8
    2163              :  && CHAR_TYPE_SIZE == 8
    2164          267 :  && tree_fits_uhwi_p (captures[2])
    2165              : )
    2166              :     {
    2167          267 :       {
    2168          267 :  unsigned HOST_WIDE_INT prec = TYPE_PRECISION (TREE_TYPE (captures[0]));
    2169          267 :  unsigned HOST_WIDE_INT bits = tree_to_uhwi (captures[2]);
    2170          267 :  tree st = TYPE_PRECISION (type) > prec ? TREE_TYPE (captures[0]) : type;
    2171          267 :           if (TYPE_PRECISION (type) > prec
    2172            0 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    2173            0 :  && TYPE_UNSIGNED (type)
    2174          267 :  && bits < prec && bits + 8 >= prec
    2175              : )
    2176              :             {
    2177            0 :               {
    2178            0 :  tree nst = build_int_cst (integer_type_node, prec - 8);
    2179            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail754;
    2180            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail754;
    2181            0 :                   {
    2182            0 :                     tree res_op0;
    2183            0 :                     {
    2184            0 :                       tree _o1[1], _r1;
    2185            0 :                       {
    2186            0 :                         tree _o2[2], _r2;
    2187            0 :                         {
    2188            0 :                           tree _o3[1], _r3;
    2189            0 :                           _o3[0] = captures[1];
    2190            0 :                           if (TREE_TYPE (_o3[0]) != st)
    2191              :                             {
    2192            0 :                               _r3 = fold_build1_loc (loc, NOP_EXPR, st, _o3[0]);
    2193              :                             }
    2194              :                           else
    2195              :                             _r3 = _o3[0];
    2196            0 :                           _o2[0] = _r3;
    2197              :                         }
    2198            0 :                         _o2[1] = nst;
    2199            0 :                         _r2 = fold_build2_loc (loc, LSHIFT_EXPR, st, _o2[0], _o2[1]);
    2200            0 :                         _o1[0] = _r2;
    2201              :                       }
    2202            0 :                       if (TREE_TYPE (_o1[0]) != type)
    2203              :                         {
    2204            0 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2205              :                         }
    2206              :                       else
    2207              :                         _r1 = _o1[0];
    2208            0 :                       res_op0 = _r1;
    2209              :                     }
    2210            0 :                     tree res_op1;
    2211            0 :                     res_op1 = captures[2];
    2212            0 :                     tree _r;
    2213            0 :                     _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
    2214            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 621, __FILE__, __LINE__, true);
    2215            0 :                     return _r;
    2216              :                   }
    2217              : next_after_fail754:;
    2218              :               }
    2219              :             }
    2220              :           else
    2221              :             {
    2222          267 :               if (bits + 8 == prec
    2223              : )
    2224              :                 {
    2225           46 :                   if (TYPE_UNSIGNED (st)
    2226              : )
    2227              :                     {
    2228           36 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail755;
    2229           36 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail755;
    2230           36 :                       {
    2231           36 :                         tree res_op0;
    2232           36 :                         {
    2233           36 :                           tree _o1[1], _r1;
    2234           36 :                           _o1[0] = captures[1];
    2235           36 :                           if (TREE_TYPE (_o1[0]) != unsigned_char_type_node)
    2236              :                             {
    2237           36 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, unsigned_char_type_node, _o1[0]);
    2238              :                             }
    2239              :                           else
    2240              :                             _r1 = _o1[0];
    2241           36 :                           res_op0 = _r1;
    2242              :                         }
    2243           36 :                         tree _r;
    2244           36 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2245           36 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 622, __FILE__, __LINE__, true);
    2246           36 :                         return _r;
    2247              :                       }
    2248              : next_after_fail755:;
    2249              :                     }
    2250              :                   else
    2251              :                     {
    2252           10 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail756;
    2253           10 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail756;
    2254           10 :                       {
    2255           10 :                         tree res_op0;
    2256           10 :                         {
    2257           10 :                           tree _o1[1], _r1;
    2258           10 :                           _o1[0] = captures[1];
    2259           10 :                           if (TREE_TYPE (_o1[0]) != signed_char_type_node)
    2260              :                             {
    2261           10 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, signed_char_type_node, _o1[0]);
    2262              :                             }
    2263              :                           else
    2264              :                             _r1 = _o1[0];
    2265           10 :                           res_op0 = _r1;
    2266              :                         }
    2267           10 :                         tree _r;
    2268           10 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2269           10 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 623, __FILE__, __LINE__, true);
    2270           10 :                         return _r;
    2271              :                       }
    2272              : next_after_fail756:;
    2273              :                     }
    2274              :                 }
    2275              :               else
    2276              :                 {
    2277          221 :                   if (bits < prec && bits + 8 > prec
    2278              : )
    2279              :                     {
    2280           57 :                       {
    2281           57 :  tree nst = build_int_cst (integer_type_node, bits & 7);
    2282           57 :  tree bt = TYPE_UNSIGNED (st) ? unsigned_char_type_node
    2283           57 :  : signed_char_type_node;
    2284           57 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail757;
    2285           57 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail757;
    2286           57 :                           {
    2287           57 :                             tree res_op0;
    2288           57 :                             {
    2289           57 :                               tree _o1[2], _r1;
    2290           57 :                               {
    2291           57 :                                 tree _o2[1], _r2;
    2292           57 :                                 _o2[0] = captures[1];
    2293           57 :                                 if (TREE_TYPE (_o2[0]) != bt)
    2294              :                                   {
    2295           57 :                                     _r2 = fold_build1_loc (loc, NOP_EXPR, bt, _o2[0]);
    2296              :                                   }
    2297              :                                 else
    2298              :                                   _r2 = _o2[0];
    2299           57 :                                 _o1[0] = _r2;
    2300              :                               }
    2301           57 :                               _o1[1] = nst;
    2302           57 :                               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, bt, _o1[0], _o1[1]);
    2303           57 :                               res_op0 = _r1;
    2304              :                             }
    2305           57 :                             tree _r;
    2306           57 :                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2307           57 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 624, __FILE__, __LINE__, true);
    2308           57 :                             return _r;
    2309              :                           }
    2310              : next_after_fail757:;
    2311              :                       }
    2312              :                     }
    2313              :                 }
    2314              :             }
    2315              :       }
    2316              :     }
    2317              :   return NULL_TREE;
    2318              : }
    2319              : 
    2320              : tree
    2321            0 : generic_simplify_440 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2322              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2323              :  const combined_fn ARG_UNUSED (pow))
    2324              : {
    2325            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2326            0 :   if (flag_unsafe_math_optimizations
    2327              : )
    2328              :     {
    2329            0 :       if (! HONOR_INFINITIES (type)
    2330            0 :  && ! flag_trapping_math
    2331            0 :  && ! flag_errno_math
    2332              : )
    2333              :         {
    2334            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail785;
    2335            0 :           {
    2336            0 :             tree res_op0;
    2337            0 :             res_op0 = captures[2];
    2338            0 :             tree res_op1;
    2339            0 :             {
    2340            0 :               tree _o1[1], _r1;
    2341            0 :               _o1[0] = captures[3];
    2342            0 :               _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2343            0 :               res_op1 = _r1;
    2344              :             }
    2345            0 :             tree _r;
    2346            0 :             _r = maybe_build_call_expr_loc (loc, pow, type, 2, res_op0, res_op1);
    2347            0 :             if (!_r)
    2348            0 :               goto next_after_fail785;
    2349            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2350            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2351            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 640, __FILE__, __LINE__, true);
    2352            0 :             return _r;
    2353              :           }
    2354              : next_after_fail785:;
    2355              :         }
    2356              :     }
    2357              :   return NULL_TREE;
    2358              : }
    2359              : 
    2360              : tree
    2361            0 : generic_simplify_446 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2362              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2363              :  const combined_fn ARG_UNUSED (HYPOT))
    2364              : {
    2365            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2366            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail791;
    2367            0 :   {
    2368            0 :     tree res_op0;
    2369            0 :     res_op0 = captures[0];
    2370            0 :     tree _r;
    2371            0 :     _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    2372            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2373            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2374            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 646, __FILE__, __LINE__, true);
    2375              :     return _r;
    2376              :   }
    2377            0 : next_after_fail791:;
    2378            0 :   return NULL_TREE;
    2379              : }
    2380              : 
    2381              : tree
    2382      4874349 : generic_simplify_448 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2383              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2384              : {
    2385      4874349 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2386      4874349 :   {
    2387      4874349 :  bool wascmp;
    2388      4874349 :       if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2389      4874349 :  && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
    2390              : )
    2391              :         {
    2392          115 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail793;
    2393          115 :           {
    2394          115 :             tree _r;
    2395          115 :             _r =  wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
    2396          115 :             if (TREE_SIDE_EFFECTS (captures[0]))
    2397            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2398          115 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2399            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2400          115 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 648, __FILE__, __LINE__, true);
    2401          115 :             return _r;
    2402              :           }
    2403            0 : next_after_fail793:;
    2404              :         }
    2405              :   }
    2406      4874234 :   return NULL_TREE;
    2407              : }
    2408              : 
    2409              : tree
    2410           82 : generic_simplify_456 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2411              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2412              :  const enum tree_code ARG_UNUSED (bitop),
    2413              :  const enum tree_code ARG_UNUSED (op))
    2414              : {
    2415           82 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2416           82 :   {
    2417           82 :  tree pmop[2];
    2418           82 :  tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[5], op, captures[1], bitop,
    2419              :  captures[2], captures[3], captures[4], ERROR_MARK, NULL_TREE,
    2420              :  NULL_TREE, pmop);
    2421           82 :       if (utype
    2422              : )
    2423              :         {
    2424           22 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail801;
    2425           22 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail801;
    2426           22 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail801;
    2427           22 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail801;
    2428           22 :           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail801;
    2429           22 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail801;
    2430           22 :           {
    2431           22 :             tree res_op0;
    2432           22 :             {
    2433           22 :               tree _o1[2], _r1;
    2434           22 :               {
    2435           22 :                 tree _o2[2], _r2;
    2436           22 :                 {
    2437           22 :                   tree _o3[1], _r3;
    2438           22 :                   _o3[0] =  pmop[0];
    2439           22 :                   if (TREE_TYPE (_o3[0]) != utype)
    2440              :                     {
    2441           10 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2442              :                     }
    2443              :                   else
    2444              :                     _r3 = _o3[0];
    2445           22 :                   _o2[0] = _r3;
    2446              :                 }
    2447           22 :                 {
    2448           22 :                   tree _o3[1], _r3;
    2449           22 :                   _o3[0] =  pmop[1];
    2450           22 :                   if (TREE_TYPE (_o3[0]) != utype)
    2451              :                     {
    2452           10 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2453              :                     }
    2454              :                   else
    2455              :                     _r3 = _o3[0];
    2456           22 :                   _o2[1] = _r3;
    2457              :                 }
    2458           22 :                 _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    2459           22 :                 _o1[0] = _r2;
    2460              :               }
    2461           22 :               {
    2462           22 :                 tree _o2[1], _r2;
    2463           22 :                 _o2[0] = captures[5];
    2464           22 :                 if (TREE_TYPE (_o2[0]) != utype)
    2465              :                   {
    2466           10 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2467              :                   }
    2468              :                 else
    2469              :                   _r2 = _o2[0];
    2470           22 :                 _o1[1] = _r2;
    2471              :               }
    2472           22 :               _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2473           22 :               res_op0 = _r1;
    2474              :             }
    2475           22 :             tree _r;
    2476           22 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2477           22 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 655, __FILE__, __LINE__, true);
    2478           22 :             return _r;
    2479              :           }
    2480           60 : next_after_fail801:;
    2481              :         }
    2482              :   }
    2483           60 :   return NULL_TREE;
    2484              : }
    2485              : 
    2486              : tree
    2487          201 : generic_simplify_472 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2488              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2489              :  const enum tree_code ARG_UNUSED (code2),
    2490              :  const enum tree_code ARG_UNUSED (code1))
    2491              : {
    2492          201 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2493          201 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
    2494            2 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2495          201 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2496            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
    2497            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
    2498            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
    2499          199 :  && bitwise_equal_p (captures[2], captures[5]))
    2500              : )
    2501              :     {
    2502            2 :       {
    2503            2 :  bool one_before = false;
    2504            2 :  bool one_after = false;
    2505            2 :  int cmp = 0;
    2506            2 :  bool allbits = true;
    2507            2 :  if (TREE_CODE (captures[2]) == INTEGER_CST
    2508            2 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2509              :  {
    2510            2 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
    2511            2 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
    2512            2 :  auto t2 = wi::to_wide (captures[5]);
    2513            2 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
    2514            2 :  if (cmp < 0
    2515            2 :  && t1 == t2 - 1)
    2516              :  one_before = true;
    2517            2 :  if (cmp > 0
    2518            2 :  && t1 == t2 + 1)
    2519              :  one_after = true;
    2520              :  }
    2521            2 :  bool val;
    2522            2 :  switch (code2)
    2523              :  {
    2524            0 :  case EQ_EXPR: val = (cmp == 0); break;
    2525            2 :  case NE_EXPR: val = (cmp != 0); break;
    2526            0 :  case LT_EXPR: val = (cmp < 0); break;
    2527            0 :  case GT_EXPR: val = (cmp > 0); break;
    2528            0 :  case LE_EXPR: val = (cmp <= 0); break;
    2529            0 :  case GE_EXPR: val = (cmp >= 0); break;
    2530            0 :  default: gcc_unreachable ();
    2531              :  }
    2532            2 :           if (code1 == EQ_EXPR && val
    2533              : )
    2534              :             {
    2535            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail825;
    2536            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail825;
    2537            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail825;
    2538            0 :               {
    2539            0 :                 tree _r;
    2540            0 :                 _r = captures[0];
    2541            0 :                 if (TREE_SIDE_EFFECTS (captures[4]))
    2542            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2543            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 671, __FILE__, __LINE__, true);
    2544            0 :                 return _r;
    2545              :               }
    2546              : next_after_fail825:;
    2547              :             }
    2548              :           else
    2549              :             {
    2550            2 :               if (code1 == EQ_EXPR && !val
    2551              : )
    2552              :                 {
    2553            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail826;
    2554            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail826;
    2555            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail826;
    2556            0 :                   {
    2557            0 :                     tree _r;
    2558            0 :                     _r =  constant_boolean_node (false, type);
    2559            0 :                     if (TREE_SIDE_EFFECTS (captures[4]))
    2560            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2561            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 672, __FILE__, __LINE__, true);
    2562            0 :                     return _r;
    2563              :                   }
    2564              : next_after_fail826:;
    2565              :                 }
    2566              :               else
    2567              :                 {
    2568            2 :                   if (code1 == NE_EXPR && !val && allbits
    2569              : )
    2570              :                     {
    2571            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail827;
    2572            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail827;
    2573            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail827;
    2574            0 :                       {
    2575            0 :                         tree _r;
    2576            0 :                         _r = captures[3];
    2577            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 673, __FILE__, __LINE__, true);
    2578            0 :                         return _r;
    2579              :                       }
    2580              : next_after_fail827:;
    2581              :                     }
    2582              :                   else
    2583              :                     {
    2584            2 :                       if ((code1 == NE_EXPR
    2585            2 :  && code2 == GE_EXPR
    2586            0 :  && cmp == 0
    2587            0 :  && allbits)
    2588            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2589            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2590            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2591              : )
    2592              :                         {
    2593            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail828;
    2594            0 :                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail828;
    2595            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail828;
    2596            0 :                           {
    2597            0 :                             tree res_op0;
    2598            0 :                             res_op0 = captures[4];
    2599            0 :                             tree res_op1;
    2600            0 :                             {
    2601            0 :                               tree _o1[1], _r1;
    2602            0 :                               _o1[0] = captures[2];
    2603            0 :                               if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2604              :                                 {
    2605            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2606              :                                 }
    2607              :                               else
    2608              :                                 _r1 = _o1[0];
    2609            0 :                               res_op1 = _r1;
    2610              :                             }
    2611            0 :                             tree _r;
    2612            0 :                             _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2613            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 674, __FILE__, __LINE__, true);
    2614            0 :                             return _r;
    2615              :                           }
    2616              : next_after_fail828:;
    2617              :                         }
    2618              :                       else
    2619              :                         {
    2620            2 :                           if ((code1 == NE_EXPR
    2621            2 :  && code2 == LE_EXPR
    2622            0 :  && cmp == 0
    2623            0 :  && allbits)
    2624            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2625            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2626            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2627              : )
    2628              :                             {
    2629            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail829;
    2630            0 :                               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail829;
    2631            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail829;
    2632            0 :                               {
    2633            0 :                                 tree res_op0;
    2634            0 :                                 res_op0 = captures[4];
    2635            0 :                                 tree res_op1;
    2636            0 :                                 {
    2637            0 :                                   tree _o1[1], _r1;
    2638            0 :                                   _o1[0] = captures[2];
    2639            0 :                                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2640              :                                     {
    2641            0 :                                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2642              :                                     }
    2643              :                                   else
    2644              :                                     _r1 = _o1[0];
    2645            0 :                                   res_op1 = _r1;
    2646              :                                 }
    2647            0 :                                 tree _r;
    2648            0 :                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2649            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 675, __FILE__, __LINE__, true);
    2650            0 :                                 return _r;
    2651              :                               }
    2652              : next_after_fail829:;
    2653              :                             }
    2654              :                           else
    2655              :                             {
    2656            2 :                               if ((code1 == NE_EXPR
    2657            2 :  && code2 == GT_EXPR
    2658              :  && one_after
    2659            0 :  && allbits)
    2660            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2661            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2662            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2663              : )
    2664              :                                 {
    2665            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail830;
    2666            0 :                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail830;
    2667            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail830;
    2668            0 :                                   {
    2669            0 :                                     tree res_op0;
    2670            0 :                                     res_op0 = captures[4];
    2671            0 :                                     tree res_op1;
    2672            0 :                                     {
    2673            0 :                                       tree _o1[1], _r1;
    2674            0 :                                       _o1[0] = captures[2];
    2675            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2676              :                                         {
    2677            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2678              :                                         }
    2679              :                                       else
    2680              :                                         _r1 = _o1[0];
    2681            0 :                                       res_op1 = _r1;
    2682              :                                     }
    2683            0 :                                     tree _r;
    2684            0 :                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2685            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 676, __FILE__, __LINE__, true);
    2686            0 :                                     return _r;
    2687              :                                   }
    2688              : next_after_fail830:;
    2689              :                                 }
    2690              :                               else
    2691              :                                 {
    2692            2 :                                   if ((code1 == NE_EXPR
    2693            2 :  && code2 == LT_EXPR
    2694              :  && one_before
    2695            0 :  && allbits)
    2696            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2697            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2698            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2699              : )
    2700              :                                     {
    2701            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail831;
    2702            0 :                                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail831;
    2703            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail831;
    2704            0 :                                       {
    2705            0 :                                         tree res_op0;
    2706            0 :                                         res_op0 = captures[4];
    2707            0 :                                         tree res_op1;
    2708            0 :                                         {
    2709            0 :                                           tree _o1[1], _r1;
    2710            0 :                                           _o1[0] = captures[2];
    2711            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2712              :                                             {
    2713            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2714              :                                             }
    2715              :                                           else
    2716              :                                             _r1 = _o1[0];
    2717            0 :                                           res_op1 = _r1;
    2718              :                                         }
    2719            0 :                                         tree _r;
    2720            0 :                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2721            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
    2722            0 :                                         return _r;
    2723              :                                       }
    2724              : next_after_fail831:;
    2725              :                                     }
    2726              :                                 }
    2727              :                             }
    2728              :                         }
    2729              :                     }
    2730              :                 }
    2731              :             }
    2732              :       }
    2733              :     }
    2734              :   return NULL_TREE;
    2735              : }
    2736              : 
    2737              : tree
    2738            0 : generic_simplify_504 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2739              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2740              : {
    2741            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2742            0 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    2743              : )
    2744              :     {
    2745            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail893;
    2746            0 :       {
    2747            0 :         tree res_op0;
    2748            0 :         {
    2749            0 :           tree _o1[2], _r1;
    2750            0 :           _o1[0] = captures[0];
    2751            0 :           _o1[1] = captures[1];
    2752            0 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2753            0 :           res_op0 = _r1;
    2754              :         }
    2755            0 :         tree _r;
    2756            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2757            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 708, __FILE__, __LINE__, true);
    2758            0 :         return _r;
    2759              :       }
    2760            0 : next_after_fail893:;
    2761              :     }
    2762              :   return NULL_TREE;
    2763              : }
    2764              : 
    2765              : tree
    2766        38960 : generic_simplify_510 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2767              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2768              : {
    2769        38960 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2770        38960 :   if (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
    2771        38960 :  && !HONOR_SIGNED_ZEROS (type)
    2772              : )
    2773              :     {
    2774        38960 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail900;
    2775        38960 :       {
    2776        38960 :         tree res_op0;
    2777        38960 :         {
    2778        38960 :           tree _o1[1], _r1;
    2779        38960 :           _o1[0] = captures[1];
    2780        38960 :           _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2781        38960 :           res_op0 = _r1;
    2782              :         }
    2783        38960 :         tree res_op1;
    2784        38960 :         res_op1 = captures[0];
    2785        38960 :         tree _r;
    2786        38960 :         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    2787        38960 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 713, __FILE__, __LINE__, true);
    2788        38960 :         return _r;
    2789              :       }
    2790            0 : next_after_fail900:;
    2791              :     }
    2792              :   return NULL_TREE;
    2793              : }
    2794              : 
    2795              : tree
    2796           16 : generic_simplify_516 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2797              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2798              :  const combined_fn ARG_UNUSED (fmas))
    2799              : {
    2800           16 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2801           16 :   if (canonicalize_math_after_vectorization_p ()
    2802              : )
    2803              :     {
    2804              :       if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
    2805              : )
    2806              :         {
    2807              :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail907;
    2808              :           {
    2809              :             tree res_op0;
    2810              :             res_op0 = captures[1];
    2811              :             tree res_op1;
    2812              :             res_op1 = captures[2];
    2813              :             tree res_op2;
    2814              :             res_op2 = captures[3];
    2815              :             tree _r;
    2816              :             _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
    2817              :             if (!_r)
    2818              :               goto next_after_fail907;
    2819              :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 720, __FILE__, __LINE__, true);
    2820              :             return _r;
    2821              :           }
    2822           16 : next_after_fail907:;
    2823              :         }
    2824              :     }
    2825           16 :   return NULL_TREE;
    2826              : }
    2827              : 
    2828              : tree
    2829            0 : generic_simplify_528 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2830              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2831              :  const enum tree_code ARG_UNUSED (minmax),
    2832              :  const enum tree_code ARG_UNUSED (cmp))
    2833              : {
    2834            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2835            0 :   {
    2836            0 :  poly_int64 off0, off1;
    2837            0 :  tree base0, base1;
    2838            0 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
    2839              :  off0, off1,
    2840              : 1
    2841              : );
    2842            0 :       if (equal == 1
    2843              : )
    2844              :         {
    2845            0 :           if (minmax == MIN_EXPR
    2846              : )
    2847              :             {
    2848            0 :               if (known_le (off0, off1)
    2849              : )
    2850              :                 {
    2851            0 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail927;
    2852            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail927;
    2853            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail927;
    2854            0 :                   {
    2855            0 :                     tree _r;
    2856            0 :                     _r = captures[0];
    2857            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 731, __FILE__, __LINE__, true);
    2858            0 :                     return _r;
    2859              :                   }
    2860            0 : next_after_fail927:;
    2861              :                 }
    2862              :               else
    2863              :                 {
    2864            0 :                   if (known_gt (off0, off1)
    2865              : )
    2866              :                     {
    2867            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail928;
    2868            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail928;
    2869            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail928;
    2870            0 :                       {
    2871            0 :                         tree _r;
    2872            0 :                         _r = captures[2];
    2873            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 732, __FILE__, __LINE__, true);
    2874            0 :                         return _r;
    2875              :                       }
    2876            0 : next_after_fail928:;
    2877              :                     }
    2878              :                 }
    2879              :             }
    2880              :           else
    2881              :             {
    2882            0 :               if (known_ge (off0, off1)
    2883              : )
    2884              :                 {
    2885            0 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail929;
    2886            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail929;
    2887            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail929;
    2888            0 :                   {
    2889            0 :                     tree _r;
    2890            0 :                     _r = captures[0];
    2891            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 733, __FILE__, __LINE__, true);
    2892            0 :                     return _r;
    2893              :                   }
    2894            0 : next_after_fail929:;
    2895              :                 }
    2896              :               else
    2897              :                 {
    2898            0 :                   if (known_lt (off0, off1)
    2899              : )
    2900              :                     {
    2901            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail930;
    2902            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail930;
    2903            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail930;
    2904            0 :                       {
    2905            0 :                         tree _r;
    2906            0 :                         _r = captures[2];
    2907            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 734, __FILE__, __LINE__, true);
    2908            0 :                         return _r;
    2909              :                       }
    2910            0 : next_after_fail930:;
    2911              :                     }
    2912              :                 }
    2913              :             }
    2914              :         }
    2915              :   }
    2916            0 :   return NULL_TREE;
    2917              : }
    2918              : 
    2919              : tree
    2920            0 : generic_simplify_549 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2921              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2922              :  const combined_fn ARG_UNUSED (cond_len_op))
    2923              : {
    2924            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2925            0 :   {
    2926            0 :  tree op_type = TREE_TYPE (captures[4]);
    2927            0 :       if (element_precision (type) == element_precision (op_type)
    2928              : )
    2929              :         {
    2930            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail954;
    2931            0 :           {
    2932            0 :             tree res_op0;
    2933            0 :             {
    2934            0 :               tree _o1[7], _r1;
    2935            0 :               _o1[0] = captures[0];
    2936            0 :               _o1[1] = captures[1];
    2937            0 :               _o1[2] = captures[2];
    2938            0 :               _o1[3] = captures[3];
    2939            0 :               {
    2940            0 :                 tree _o2[1], _r2;
    2941            0 :                 _o2[0] = captures[7];
    2942            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    2943              :                   {
    2944            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    2945              :                   }
    2946              :                 else
    2947              :                   _r2 = _o2[0];
    2948            0 :                 _o1[4] = _r2;
    2949              :               }
    2950            0 :               _o1[5] = captures[5];
    2951            0 :               _o1[6] = captures[6];
    2952            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 7, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5], _o1[6]);
    2953            0 :               if (!_r1)
    2954            0 :                 goto next_after_fail954;
    2955            0 :               res_op0 = _r1;
    2956              :             }
    2957            0 :             tree _r;
    2958            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    2959            0 :             if (TREE_SIDE_EFFECTS (captures[4]))
    2960            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2961            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 749, __FILE__, __LINE__, true);
    2962            0 :             return _r;
    2963              :           }
    2964              : next_after_fail954:;
    2965              :         }
    2966              :   }
    2967              :   return NULL_TREE;
    2968              : }
    2969              : 
    2970              : tree
    2971      1802430 : generic_simplify_560 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2972              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2973              :  const enum tree_code ARG_UNUSED (cmp))
    2974              : {
    2975      1802430 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2976      1802430 :   if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
    2977      1802430 :  && (cmp != LTGT_EXPR || ! flag_trapping_math)
    2978              : )
    2979              :     {
    2980           10 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail968;
    2981           10 :       {
    2982           10 :         tree _r;
    2983           20 :         _r =  constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR
    2984           10 :  ? false : true, type);
    2985           10 :         if (TREE_SIDE_EFFECTS (captures[0]))
    2986            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2987           10 :         if (TREE_SIDE_EFFECTS (captures[1]))
    2988            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2989           10 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 763, __FILE__, __LINE__, true);
    2990           10 :         return _r;
    2991              :       }
    2992            0 : next_after_fail968:;
    2993              :     }
    2994              :   return NULL_TREE;
    2995              : }
    2996              : 
    2997              : tree
    2998            0 : generic_simplify_570 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2999              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3000              :  const combined_fn ARG_UNUSED (sinhs),
    3001              :  const combined_fn ARG_UNUSED (atanhs),
    3002              :  const combined_fn ARG_UNUSED (sqrts))
    3003              : {
    3004            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3005            0 :   if (!flag_errno_math
    3006              : )
    3007              :     {
    3008            0 :       {
    3009            0 :  tree t_one = build_one_cst (type);
    3010            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail978;
    3011            0 :           {
    3012            0 :             if (! tree_invariant_p (captures[1])) goto next_after_fail978;
    3013            0 :             tree res_op0;
    3014            0 :             res_op0 = unshare_expr (captures[1]);
    3015            0 :             tree res_op1;
    3016            0 :             {
    3017            0 :               tree _o1[1], _r1;
    3018            0 :               {
    3019            0 :                 tree _o2[2], _r2;
    3020            0 :                 {
    3021            0 :                   tree _o3[2], _r3;
    3022            0 :                   _o3[0] =  t_one;
    3023            0 :                   _o3[1] = unshare_expr (captures[1]);
    3024            0 :                   _r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    3025            0 :                   _o2[0] = _r3;
    3026              :                 }
    3027            0 :                 {
    3028            0 :                   tree _o3[2], _r3;
    3029            0 :                   _o3[0] =  t_one;
    3030            0 :                   _o3[1] = captures[1];
    3031            0 :                   _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    3032            0 :                   _o2[1] = _r3;
    3033              :                 }
    3034            0 :                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    3035            0 :                 _o1[0] = _r2;
    3036              :               }
    3037            0 :               _r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3038            0 :               if (!_r1)
    3039            0 :                 goto next_after_fail978;
    3040            0 :               res_op1 = _r1;
    3041              :             }
    3042            0 :             tree _r;
    3043            0 :             _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    3044            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 773, __FILE__, __LINE__, true);
    3045            0 :             return _r;
    3046              :           }
    3047              : next_after_fail978:;
    3048              :       }
    3049              :     }
    3050              :   return NULL_TREE;
    3051              : }
    3052              : 
    3053              : tree
    3054            0 : generic_simplify_586 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3055              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3056              :  const combined_fn ARG_UNUSED (SIGNBIT))
    3057              : {
    3058            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3059            0 :   if (!HONOR_SIGNED_ZEROS (captures[0])
    3060              : )
    3061              :     {
    3062            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail994;
    3063            0 :       {
    3064            0 :         tree res_op0;
    3065            0 :         {
    3066            0 :           tree _o1[2], _r1;
    3067            0 :           _o1[0] = captures[0];
    3068            0 :           _o1[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
    3069            0 :           _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
    3070            0 :           res_op0 = _r1;
    3071              :         }
    3072            0 :         tree _r;
    3073            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3074            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 789, __FILE__, __LINE__, true);
    3075            0 :         return _r;
    3076              :       }
    3077            0 : next_after_fail994:;
    3078              :     }
    3079              :   return NULL_TREE;
    3080              : }
    3081              : 
    3082              : tree
    3083            0 : generic_simplify_596 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3084              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures),
    3085              :  const combined_fn ARG_UNUSED (fmas))
    3086              : {
    3087            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3088            0 :   if (canonicalize_math_after_vectorization_p ()
    3089              : )
    3090              :     {
    3091              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1004;
    3092              :       {
    3093              :         tree res_op0;
    3094              :         res_op0 = captures[0];
    3095              :         tree res_op1;
    3096              :         res_op1 = captures[1];
    3097              :         tree res_op2;
    3098              :         res_op2 = captures[2];
    3099              :         tree res_op3;
    3100              :         res_op3 = captures[3];
    3101              :         tree res_op4;
    3102              :         res_op4 = captures[4];
    3103              :         tree _r;
    3104              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3105              :         if (!_r)
    3106              :           goto next_after_fail1004;
    3107              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 799, __FILE__, __LINE__, true);
    3108              :         return _r;
    3109              :       }
    3110            0 : next_after_fail1004:;
    3111              :     }
    3112            0 :   return NULL_TREE;
    3113              : }
    3114              : 
    3115              : tree
    3116            0 : generic_simplify_606 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3117              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3118              :  const combined_fn ARG_UNUSED (ctz))
    3119              : {
    3120            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3121            0 :   {
    3122            0 :  tree t = TREE_TYPE (captures[0]);
    3123            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1014;
    3124            0 :       {
    3125            0 :         tree res_op0;
    3126            0 :         {
    3127            0 :           tree _o1[1], _r1;
    3128            0 :           _o1[0] = captures[1];
    3129            0 :           if (TREE_TYPE (_o1[0]) != t)
    3130              :             {
    3131            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
    3132              :             }
    3133              :           else
    3134              :             _r1 = _o1[0];
    3135            0 :           res_op0 = _r1;
    3136              :         }
    3137            0 :         tree _r;
    3138            0 :         _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
    3139            0 :         if (!_r)
    3140            0 :           goto next_after_fail1014;
    3141            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 807, __FILE__, __LINE__, true);
    3142              :         return _r;
    3143              :       }
    3144              : next_after_fail1014:;
    3145              :   }
    3146              :   return NULL_TREE;
    3147              : }
    3148              : 
    3149              : tree
    3150            0 : generic_simplify_616 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3151              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3152              :  const enum tree_code ARG_UNUSED (rot),
    3153              :  const combined_fn ARG_UNUSED (parity))
    3154              : {
    3155            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3156            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3157            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3158            0 :  && (
    3159              : 
    3160            0 :  || !TREE_SIDE_EFFECTS (captures[3]))
    3161            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0]))
    3162            0 :  >= TYPE_PRECISION (TREE_TYPE (captures[1]))
    3163              : )
    3164              :     {
    3165            0 :       {
    3166            0 :  tree type0 = TREE_TYPE (captures[0]);
    3167            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1025;
    3168            0 :           {
    3169            0 :             tree res_op0;
    3170            0 :             {
    3171            0 :               tree _o1[1], _r1;
    3172            0 :               _o1[0] = captures[2];
    3173            0 :               if (TREE_TYPE (_o1[0]) != type0)
    3174              :                 {
    3175            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3176              :                 }
    3177              :               else
    3178              :                 _r1 = _o1[0];
    3179            0 :               res_op0 = _r1;
    3180              :             }
    3181            0 :             tree _r;
    3182            0 :             _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
    3183            0 :             if (!_r)
    3184            0 :               goto next_after_fail1025;
    3185            0 :             if (TREE_SIDE_EFFECTS (captures[3]))
    3186            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3187            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 815, __FILE__, __LINE__, true);
    3188            0 :             return _r;
    3189              :           }
    3190              : next_after_fail1025:;
    3191              :       }
    3192              :     }
    3193              :   return NULL_TREE;
    3194              : }
    3195              : 
    3196              : tree
    3197      2752056 : generic_simplify_BIT_NOT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3198              : {
    3199      2752056 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3200      2752056 :   switch (TREE_CODE (_p0))
    3201              :     {
    3202         1134 :     case BIT_AND_EXPR:
    3203         1134 :       {
    3204         1134 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3205         1134 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3206         1134 :         switch (TREE_CODE (_q20))
    3207              :           {
    3208           33 :           case BIT_NOT_EXPR:
    3209           33 :             {
    3210           33 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3211           33 :               {
    3212           33 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
    3213           33 :                 tree res = generic_simplify_496 (loc, type, _p0, captures);
    3214           33 :                 if (res) return res;
    3215              :               }
    3216            0 :               break;
    3217              :             }
    3218         1101 :           default:;
    3219              :           }
    3220         1101 :         switch (TREE_CODE (_q21))
    3221              :           {
    3222            9 :           case BIT_NOT_EXPR:
    3223            9 :             {
    3224            9 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3225            9 :               {
    3226            9 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
    3227            9 :                 tree res = generic_simplify_496 (loc, type, _p0, captures);
    3228            9 :                 if (res) return res;
    3229              :               }
    3230            0 :               break;
    3231              :             }
    3232              :           default:;
    3233              :           }
    3234              :         break;
    3235              :       }
    3236         1209 :     case BIT_IOR_EXPR:
    3237         1209 :       {
    3238         1209 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3239         1209 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3240         1209 :         switch (TREE_CODE (_q20))
    3241              :           {
    3242           68 :           case BIT_NOT_EXPR:
    3243           68 :             {
    3244           68 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3245           68 :               {
    3246           68 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
    3247           68 :                 tree res = generic_simplify_497 (loc, type, _p0, captures);
    3248           68 :                 if (res) return res;
    3249              :               }
    3250            0 :               break;
    3251              :             }
    3252         1141 :           default:;
    3253              :           }
    3254         1141 :         switch (TREE_CODE (_q21))
    3255              :           {
    3256           40 :           case BIT_NOT_EXPR:
    3257           40 :             {
    3258           40 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3259           40 :               {
    3260           40 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
    3261           40 :                 tree res = generic_simplify_497 (loc, type, _p0, captures);
    3262           40 :                 if (res) return res;
    3263              :               }
    3264            0 :               break;
    3265              :             }
    3266              :           default:;
    3267              :           }
    3268              :         break;
    3269              :       }
    3270          148 :     case MINUS_EXPR:
    3271          148 :       {
    3272          148 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3273          148 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3274          148 :         switch (TREE_CODE (_q20))
    3275              :           {
    3276            1 :           case BIT_NOT_EXPR:
    3277            1 :             {
    3278            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3279            1 :               {
    3280            1 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    3281            1 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1061;
    3282            1 :                 {
    3283            1 :                   tree res_op0;
    3284            1 :                   res_op0 = captures[0];
    3285            1 :                   tree res_op1;
    3286            1 :                   res_op1 = captures[1];
    3287            1 :                   tree _r;
    3288            1 :                   _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    3289            1 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 842, __FILE__, __LINE__, true);
    3290            1 :                   return _r;
    3291              :                 }
    3292            0 : next_after_fail1061:;
    3293              :               }
    3294            0 :               break;
    3295              :             }
    3296          147 :           default:;
    3297              :           }
    3298          147 :         {
    3299          147 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3300          147 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1062;
    3301          147 :           {
    3302          147 :             tree res_op0;
    3303          147 :             {
    3304          147 :               tree _o1[1], _r1;
    3305          147 :               _o1[0] = captures[1];
    3306          147 :               _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3307          147 :               res_op0 = _r1;
    3308              :             }
    3309          147 :             tree res_op1;
    3310          147 :             res_op1 = captures[2];
    3311          147 :             tree _r;
    3312          147 :             _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    3313          147 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 843, __FILE__, __LINE__, true);
    3314          147 :             return _r;
    3315              :           }
    3316            0 : next_after_fail1062:;
    3317              :         }
    3318            0 :         if (integer_each_onep (_q21))
    3319              :           {
    3320            0 :             {
    3321            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3322            0 :               tree res = generic_simplify_498 (loc, type, _p0, captures);
    3323            0 :               if (res) return res;
    3324              :             }
    3325              :           }
    3326              :         break;
    3327              :       }
    3328        88749 :     case PLUS_EXPR:
    3329        88749 :       {
    3330        88749 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3331        88749 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3332        88749 :         switch (TREE_CODE (_q20))
    3333              :           {
    3334           16 :           case BIT_NOT_EXPR:
    3335           16 :             {
    3336           16 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3337           16 :               {
    3338           16 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    3339           16 :                 tree res = generic_simplify_499 (loc, type, _p0, captures);
    3340           16 :                 if (res) return res;
    3341              :               }
    3342            0 :               break;
    3343              :             }
    3344        88733 :           default:;
    3345              :           }
    3346        88733 :         switch (TREE_CODE (_q21))
    3347              :           {
    3348            1 :           case BIT_NOT_EXPR:
    3349            1 :             {
    3350            1 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3351            1 :               {
    3352            1 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    3353            1 :                 tree res = generic_simplify_499 (loc, type, _p0, captures);
    3354            1 :                 if (res) return res;
    3355              :               }
    3356            0 :               break;
    3357              :             }
    3358        73853 :           case INTEGER_CST:
    3359        73853 :             {
    3360        73853 :               {
    3361        73853 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3362        73853 :                 if ((INTEGRAL_TYPE_P (type)
    3363        73853 :  && TYPE_UNSIGNED (type))
    3364        86523 :  || (!TYPE_OVERFLOW_SANITIZED (type)
    3365        12662 :  && may_negate_without_overflow_p (captures[2]))
    3366              : )
    3367              :                   {
    3368        73838 :                     if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1063;
    3369        73838 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1063;
    3370        73838 :                     {
    3371        73838 :                       tree res_op0;
    3372        73838 :                       {
    3373        73838 :                         tree _o1[1], _r1;
    3374        73838 :                         _o1[0] = captures[1];
    3375        73838 :                         _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3376        73838 :                         res_op0 = _r1;
    3377              :                       }
    3378        73838 :                       tree res_op1;
    3379        73838 :                       res_op1 =  const_unop (NEGATE_EXPR, type, captures[2]);
    3380        73838 :                       tree _r;
    3381        73838 :                       _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    3382        73838 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 844, __FILE__, __LINE__, true);
    3383        73838 :                       return _r;
    3384              :                     }
    3385           15 : next_after_fail1063:;
    3386              :                   }
    3387              :               }
    3388           15 :               break;
    3389              :             }
    3390        14894 :           default:;
    3391              :           }
    3392        14894 :       if (integer_all_onesp (_q21))
    3393              :         {
    3394            0 :           {
    3395            0 :             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3396            0 :             tree res = generic_simplify_500 (loc, type, _p0, captures);
    3397            0 :             if (res) return res;
    3398              :           }
    3399              :         }
    3400              :         break;
    3401              :       }
    3402          394 :     case RSHIFT_EXPR:
    3403          394 :       {
    3404          394 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3405          394 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3406          394 :         {
    3407          394 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3408          394 :           if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    3409              : )
    3410              :             {
    3411          291 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1064;
    3412          291 :               {
    3413          291 :                 tree res_op0;
    3414          291 :                 {
    3415          291 :                   tree _o1[1], _r1;
    3416          291 :                   _o1[0] = captures[1];
    3417          291 :                   _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3418          291 :                   if (EXPR_P (_r1))
    3419          285 :                     goto next_after_fail1064;
    3420            6 :                   res_op0 = _r1;
    3421              :                 }
    3422            6 :                 tree res_op1;
    3423            6 :                 res_op1 = captures[2];
    3424            6 :                 tree _r;
    3425            6 :                 _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
    3426            6 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 845, __FILE__, __LINE__, true);
    3427            6 :                 return _r;
    3428              :               }
    3429          373 : next_after_fail1064:;
    3430              :             }
    3431              :           else
    3432              :             {
    3433          206 :               if (INTEGRAL_TYPE_P (type)
    3434          206 :  && !wi::neg_p (tree_nonzero_bits (captures[1]))
    3435              : )
    3436              :                 {
    3437           15 :                   {
    3438           15 :  tree stype = signed_type_for (TREE_TYPE (captures[1]));
    3439           15 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1065;
    3440           15 :                       {
    3441           15 :                         tree res_op0;
    3442           15 :                         {
    3443           15 :                           tree _o1[2], _r1;
    3444           15 :                           {
    3445           15 :                             tree _o2[1], _r2;
    3446           15 :                             {
    3447           15 :                               tree _o3[1], _r3;
    3448           15 :                               _o3[0] = captures[1];
    3449           15 :                               if (TREE_TYPE (_o3[0]) != stype)
    3450              :                                 {
    3451           15 :                                   _r3 = fold_build1_loc (loc, NOP_EXPR, stype, _o3[0]);
    3452              :                                 }
    3453              :                               else
    3454              :                                 _r3 = _o3[0];
    3455           15 :                               _o2[0] = _r3;
    3456              :                             }
    3457           15 :                             _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    3458           15 :                             if (EXPR_P (_r2))
    3459            0 :                               goto next_after_fail1065;
    3460           15 :                             _o1[0] = _r2;
    3461              :                           }
    3462           15 :                           _o1[1] = captures[2];
    3463           15 :                           _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3464           15 :                           res_op0 = _r1;
    3465              :                         }
    3466           15 :                         tree _r;
    3467           15 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3468           15 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 846, __FILE__, __LINE__, true);
    3469           15 :                         return _r;
    3470              :                       }
    3471          373 : next_after_fail1065:;
    3472              :                   }
    3473              :                 }
    3474              :             }
    3475              :         }
    3476          373 :         switch (TREE_CODE (_q20))
    3477              :           {
    3478           40 :           CASE_CONVERT:
    3479           40 :             {
    3480           40 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3481           40 :               switch (TREE_CODE (_q30))
    3482              :                 {
    3483            2 :                 case BIT_NOT_EXPR:
    3484            2 :                   {
    3485            2 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3486            2 :                     {
    3487            2 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
    3488            2 :                       tree res = generic_simplify_501 (loc, type, _p0, captures);
    3489            2 :                       if (res) return res;
    3490              :                     }
    3491            1 :                     break;
    3492              :                   }
    3493              :                 default:;
    3494              :                 }
    3495              :               break;
    3496              :             }
    3497           29 :           case BIT_NOT_EXPR:
    3498           29 :             {
    3499           29 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3500           29 :               {
    3501           29 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
    3502           29 :                 tree res = generic_simplify_501 (loc, type, _p0, captures);
    3503           29 :                 if (res) return res;
    3504              :               }
    3505            8 :               break;
    3506              :             }
    3507              :           default:;
    3508              :           }
    3509              :         break;
    3510              :       }
    3511           86 :     case BIT_NOT_EXPR:
    3512           86 :       {
    3513           86 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3514           86 :         {
    3515           86 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3516           86 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1066;
    3517           86 :           {
    3518           86 :             tree res_op0;
    3519           86 :             res_op0 = captures[0];
    3520           86 :             tree _r;
    3521           86 :             _r = non_lvalue_loc (loc, res_op0);
    3522           86 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 847, __FILE__, __LINE__, true);
    3523      2752056 :             return _r;
    3524              :           }
    3525            0 : next_after_fail1066:;
    3526              :         }
    3527            0 :         break;
    3528              :       }
    3529       990752 :     CASE_CONVERT:
    3530       990752 :       {
    3531       990752 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3532       990752 :         switch (TREE_CODE (_q20))
    3533              :           {
    3534           25 :           case NEGATE_EXPR:
    3535           25 :             {
    3536           25 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3537           25 :               {
    3538           25 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    3539           25 :                 tree res = generic_simplify_502 (loc, type, _p0, captures);
    3540           25 :                 if (res) return res;
    3541              :               }
    3542            0 :               break;
    3543              :             }
    3544          892 :           case MINUS_EXPR:
    3545          892 :             {
    3546          892 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3547          892 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3548          892 :               if (integer_each_onep (_q31))
    3549              :                 {
    3550           28 :                   {
    3551           28 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    3552           28 :                     tree res = generic_simplify_498 (loc, type, _p0, captures);
    3553           28 :                     if (res) return res;
    3554              :                   }
    3555              :                 }
    3556              :               break;
    3557              :             }
    3558        54419 :           case PLUS_EXPR:
    3559        54419 :             {
    3560        54419 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3561        54419 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3562        54419 :               if (integer_all_onesp (_q31))
    3563              :                 {
    3564         3904 :                   {
    3565         3904 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    3566         3904 :                     tree res = generic_simplify_500 (loc, type, _p0, captures);
    3567         3904 :                     if (res) return res;
    3568              :                   }
    3569              :                 }
    3570              :               break;
    3571              :             }
    3572          145 :           case BIT_XOR_EXPR:
    3573          145 :             {
    3574          145 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3575          145 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3576          145 :               switch (TREE_CODE (_q31))
    3577              :                 {
    3578            7 :                 case INTEGER_CST:
    3579            7 :                   {
    3580            7 :                     {
    3581            7 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    3582            7 :                       tree res = generic_simplify_503 (loc, type, _p0, captures);
    3583            7 :                       if (res) return res;
    3584              :                     }
    3585            0 :                     break;
    3586              :                   }
    3587          138 :                 default:;
    3588              :                 }
    3589          138 :               switch (TREE_CODE (_q30))
    3590              :                 {
    3591            0 :                 case BIT_NOT_EXPR:
    3592            0 :                   {
    3593            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3594            0 :                     {
    3595            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
    3596            0 :                       tree res = generic_simplify_504 (loc, type, _p0, captures);
    3597            0 :                       if (res) return res;
    3598              :                     }
    3599            0 :                     break;
    3600              :                   }
    3601          138 :                 default:;
    3602              :                 }
    3603          138 :               switch (TREE_CODE (_q31))
    3604              :                 {
    3605            0 :                 case BIT_NOT_EXPR:
    3606            0 :                   {
    3607            0 :                     tree _q50 = TREE_OPERAND (_q31, 0);
    3608            0 :                     {
    3609            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    3610            0 :                       tree res = generic_simplify_504 (loc, type, _p0, captures);
    3611            0 :                       if (res) return res;
    3612              :                     }
    3613            0 :                     break;
    3614              :                   }
    3615              :                 default:;
    3616              :                 }
    3617              :               break;
    3618              :             }
    3619           93 :           case RSHIFT_EXPR:
    3620           93 :             {
    3621           93 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3622           93 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3623           93 :               switch (TREE_CODE (_q30))
    3624              :                 {
    3625           17 :                 CASE_CONVERT:
    3626           17 :                   {
    3627           17 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3628           17 :                     switch (TREE_CODE (_q40))
    3629              :                       {
    3630            1 :                       case BIT_NOT_EXPR:
    3631            1 :                         {
    3632            1 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    3633            1 :                           {
    3634            1 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
    3635            1 :                             tree res = generic_simplify_505 (loc, type, _p0, captures);
    3636            1 :                             if (res) return res;
    3637              :                           }
    3638            0 :                           break;
    3639              :                         }
    3640              :                       default:;
    3641              :                       }
    3642              :                     break;
    3643              :                   }
    3644            3 :                 case BIT_NOT_EXPR:
    3645            3 :                   {
    3646            3 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3647            3 :                     {
    3648            3 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
    3649            3 :                       tree res = generic_simplify_505 (loc, type, _p0, captures);
    3650            3 :                       if (res) return res;
    3651              :                     }
    3652            1 :                     break;
    3653              :                   }
    3654              :                 default:;
    3655              :                 }
    3656              :               break;
    3657              :             }
    3658            0 :           case LROTATE_EXPR:
    3659            0 :             {
    3660            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3661            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3662            0 :               switch (TREE_CODE (_q30))
    3663              :                 {
    3664            0 :                 CASE_CONVERT:
    3665            0 :                   {
    3666            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3667            0 :                     switch (TREE_CODE (_q40))
    3668              :                       {
    3669            0 :                       case BIT_NOT_EXPR:
    3670            0 :                         {
    3671            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    3672            0 :                           {
    3673            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
    3674            0 :                             tree res = generic_simplify_506 (loc, type, _p0, captures, LROTATE_EXPR);
    3675            0 :                             if (res) return res;
    3676              :                           }
    3677            0 :                           break;
    3678              :                         }
    3679              :                       default:;
    3680              :                       }
    3681              :                     break;
    3682              :                   }
    3683            0 :                 case BIT_NOT_EXPR:
    3684            0 :                   {
    3685            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3686            0 :                     {
    3687            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
    3688            0 :                       tree res = generic_simplify_506 (loc, type, _p0, captures, LROTATE_EXPR);
    3689            0 :                       if (res) return res;
    3690              :                     }
    3691            0 :                     break;
    3692              :                   }
    3693              :                 default:;
    3694              :                 }
    3695              :               break;
    3696              :             }
    3697            0 :           case RROTATE_EXPR:
    3698            0 :             {
    3699            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3700            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3701            0 :               switch (TREE_CODE (_q30))
    3702              :                 {
    3703            0 :                 CASE_CONVERT:
    3704            0 :                   {
    3705            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3706            0 :                     switch (TREE_CODE (_q40))
    3707              :                       {
    3708            0 :                       case BIT_NOT_EXPR:
    3709            0 :                         {
    3710            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    3711            0 :                           {
    3712            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q31 };
    3713            0 :                             tree res = generic_simplify_506 (loc, type, _p0, captures, RROTATE_EXPR);
    3714            0 :                             if (res) return res;
    3715              :                           }
    3716            0 :                           break;
    3717              :                         }
    3718              :                       default:;
    3719              :                       }
    3720              :                     break;
    3721              :                   }
    3722            0 :                 case BIT_NOT_EXPR:
    3723            0 :                   {
    3724            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3725            0 :                     {
    3726            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
    3727            0 :                       tree res = generic_simplify_506 (loc, type, _p0, captures, RROTATE_EXPR);
    3728            0 :                       if (res) return res;
    3729              :                     }
    3730            0 :                     break;
    3731              :                   }
    3732              :                 default:;
    3733              :                 }
    3734              :               break;
    3735              :             }
    3736              :           default:;
    3737              :           }
    3738              :         break;
    3739              :       }
    3740          120 :     case NEGATE_EXPR:
    3741          120 :       {
    3742          120 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3743          120 :         {
    3744          120 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3745          120 :           tree res = generic_simplify_502 (loc, type, _p0, captures);
    3746          120 :           if (res) return res;
    3747              :         }
    3748            0 :         break;
    3749              :       }
    3750         1572 :     case BIT_XOR_EXPR:
    3751         1572 :       {
    3752         1572 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3753         1572 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3754         1572 :         switch (TREE_CODE (_q21))
    3755              :           {
    3756           22 :           case INTEGER_CST:
    3757           22 :             {
    3758           22 :               {
    3759           22 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3760           22 :                 tree res = generic_simplify_503 (loc, type, _p0, captures);
    3761           22 :                 if (res) return res;
    3762              :               }
    3763            0 :               break;
    3764              :             }
    3765         1550 :           default:;
    3766              :           }
    3767         1550 :         switch (TREE_CODE (_q20))
    3768              :           {
    3769            0 :           case BIT_NOT_EXPR:
    3770            0 :             {
    3771            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3772            0 :               {
    3773            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    3774            0 :                 tree res = generic_simplify_504 (loc, type, _p0, captures);
    3775            0 :                 if (res) return res;
    3776              :               }
    3777            0 :               break;
    3778              :             }
    3779         1550 :           default:;
    3780              :           }
    3781         1550 :         switch (TREE_CODE (_q21))
    3782              :           {
    3783            0 :           case BIT_NOT_EXPR:
    3784            0 :             {
    3785            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3786            0 :               {
    3787            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    3788            0 :                 tree res = generic_simplify_504 (loc, type, _p0, captures);
    3789            0 :                 if (res) return res;
    3790              :               }
    3791            0 :               break;
    3792              :             }
    3793         1550 :           default:;
    3794              :           }
    3795         1550 :         if (tree_truth_valued_p (_q20))
    3796              :           {
    3797           31 :             if (tree_truth_valued_p (_q21))
    3798              :               {
    3799            7 :                 {
    3800            7 :                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3801           14 :                   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3802           14 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) == 1
    3803              : )
    3804              :                     {
    3805            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1067;
    3806            0 :                       {
    3807            0 :                         tree res_op0;
    3808            0 :                         {
    3809            0 :                           tree _o1[2], _r1;
    3810            0 :                           _o1[0] = captures[1];
    3811            0 :                           _o1[1] = captures[2];
    3812            0 :                           _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
    3813            0 :                           res_op0 = _r1;
    3814              :                         }
    3815            0 :                         tree _r;
    3816            0 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3817            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 848, __FILE__, __LINE__, true);
    3818            0 :                         return _r;
    3819              :                       }
    3820            0 : next_after_fail1067:;
    3821              :                     }
    3822              :                 }
    3823              :               }
    3824              :           }
    3825              :         break;
    3826              :       }
    3827            0 :     case MIN_EXPR:
    3828            0 :       {
    3829            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3830            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3831            0 :         switch (TREE_CODE (_q20))
    3832              :           {
    3833            0 :           case BIT_NOT_EXPR:
    3834            0 :             {
    3835            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3836            0 :               {
    3837            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
    3838            0 :                 tree res = generic_simplify_507 (loc, type, _p0, captures, MIN_EXPR, MAX_EXPR);
    3839            0 :                 if (res) return res;
    3840              :               }
    3841            0 :               break;
    3842              :             }
    3843            0 :           default:;
    3844              :           }
    3845            0 :         switch (TREE_CODE (_q21))
    3846              :           {
    3847            0 :           case BIT_NOT_EXPR:
    3848            0 :             {
    3849            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3850            0 :               {
    3851            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
    3852            0 :                 tree res = generic_simplify_507 (loc, type, _p0, captures, MIN_EXPR, MAX_EXPR);
    3853            0 :                 if (res) return res;
    3854              :               }
    3855            0 :               break;
    3856              :             }
    3857              :           default:;
    3858              :           }
    3859              :         break;
    3860              :       }
    3861            0 :     case MAX_EXPR:
    3862            0 :       {
    3863            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3864            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3865            0 :         switch (TREE_CODE (_q20))
    3866              :           {
    3867            0 :           case BIT_NOT_EXPR:
    3868            0 :             {
    3869            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3870            0 :               {
    3871            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
    3872            0 :                 tree res = generic_simplify_507 (loc, type, _p0, captures, MAX_EXPR, MIN_EXPR);
    3873            0 :                 if (res) return res;
    3874              :               }
    3875            0 :               break;
    3876              :             }
    3877            0 :           default:;
    3878              :           }
    3879            0 :         switch (TREE_CODE (_q21))
    3880              :           {
    3881            0 :           case BIT_NOT_EXPR:
    3882            0 :             {
    3883            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3884            0 :               {
    3885            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
    3886            0 :                 tree res = generic_simplify_507 (loc, type, _p0, captures, MAX_EXPR, MIN_EXPR);
    3887            0 :                 if (res) return res;
    3888              :               }
    3889            0 :               break;
    3890              :             }
    3891              :           default:;
    3892              :           }
    3893              :         break;
    3894              :       }
    3895            1 :     case LROTATE_EXPR:
    3896            1 :       {
    3897            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3898            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3899            1 :         switch (TREE_CODE (_q20))
    3900              :           {
    3901            0 :           CASE_CONVERT:
    3902            0 :             {
    3903            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3904            0 :               switch (TREE_CODE (_q30))
    3905              :                 {
    3906            0 :                 case BIT_NOT_EXPR:
    3907            0 :                   {
    3908            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3909            0 :                     {
    3910            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
    3911            0 :                       tree res = generic_simplify_508 (loc, type, _p0, captures, LROTATE_EXPR);
    3912            0 :                       if (res) return res;
    3913              :                     }
    3914            0 :                     break;
    3915              :                   }
    3916              :                 default:;
    3917              :                 }
    3918              :               break;
    3919              :             }
    3920            1 :           case BIT_NOT_EXPR:
    3921            1 :             {
    3922            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3923            1 :               {
    3924            1 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
    3925            1 :                 tree res = generic_simplify_508 (loc, type, _p0, captures, LROTATE_EXPR);
    3926            1 :                 if (res) return res;
    3927              :               }
    3928            0 :               break;
    3929              :             }
    3930              :           default:;
    3931              :           }
    3932              :         break;
    3933              :       }
    3934            1 :     case RROTATE_EXPR:
    3935            1 :       {
    3936            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3937            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3938            1 :         switch (TREE_CODE (_q20))
    3939              :           {
    3940            0 :           CASE_CONVERT:
    3941            0 :             {
    3942            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3943            0 :               switch (TREE_CODE (_q30))
    3944              :                 {
    3945            0 :                 case BIT_NOT_EXPR:
    3946            0 :                   {
    3947            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3948            0 :                     {
    3949            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q21 };
    3950            0 :                       tree res = generic_simplify_508 (loc, type, _p0, captures, RROTATE_EXPR);
    3951            0 :                       if (res) return res;
    3952              :                     }
    3953            0 :                     break;
    3954              :                   }
    3955              :                 default:;
    3956              :                 }
    3957              :               break;
    3958              :             }
    3959            1 :           case BIT_NOT_EXPR:
    3960            1 :             {
    3961            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3962            1 :               {
    3963            1 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q30, _q21 };
    3964            1 :                 tree res = generic_simplify_508 (loc, type, _p0, captures, RROTATE_EXPR);
    3965            1 :                 if (res) return res;
    3966              :               }
    3967            0 :               break;
    3968              :             }
    3969              :           default:;
    3970              :           }
    3971              :         break;
    3972              :       }
    3973           32 :     case VEC_COND_EXPR:
    3974           32 :       {
    3975           32 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3976           32 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3977           32 :         tree _q22 = TREE_OPERAND (_p0, 2);
    3978           32 :         {
    3979           32 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3980           32 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1068;
    3981           32 :           {
    3982           32 :             tree res_op0;
    3983           32 :             res_op0 = captures[1];
    3984           32 :             tree res_op1;
    3985           32 :             {
    3986           32 :               tree _o1[1], _r1;
    3987           32 :               _o1[0] = captures[2];
    3988           32 :               _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, type, _o1[0]);
    3989           32 :               if (EXPR_P (_r1))
    3990            0 :                 goto next_after_fail1068;
    3991           32 :               res_op1 = _r1;
    3992              :             }
    3993           32 :             tree res_op2;
    3994           32 :             {
    3995           32 :               tree _o1[1], _r1;
    3996           32 :               _o1[0] = captures[3];
    3997           32 :               _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, type, _o1[0]);
    3998           32 :               if (EXPR_P (_r1))
    3999            0 :                 goto next_after_fail1068;
    4000           32 :               res_op2 = _r1;
    4001              :             }
    4002           32 :             tree _r;
    4003           32 :             _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4004           32 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 824, __FILE__, __LINE__, true);
    4005           32 :             return _r;
    4006              :           }
    4007            0 : next_after_fail1068:;
    4008              :         }
    4009            0 :         break;
    4010              :       }
    4011            4 :     case LT_EXPR:
    4012            4 :       {
    4013            4 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4014            4 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4015            4 :         {
    4016            4 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4017            4 :           tree res = generic_simplify_509 (loc, type, _p0, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    4018            4 :           if (res) return res;
    4019              :         }
    4020            4 :         break;
    4021              :       }
    4022            4 :     case LE_EXPR:
    4023            4 :       {
    4024            4 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4025            4 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4026            4 :         {
    4027            4 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4028            4 :           tree res = generic_simplify_509 (loc, type, _p0, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    4029            4 :           if (res) return res;
    4030              :         }
    4031            4 :         break;
    4032              :       }
    4033           63 :     case EQ_EXPR:
    4034           63 :       {
    4035           63 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4036           63 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4037           63 :         {
    4038           63 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4039           63 :           tree res = generic_simplify_509 (loc, type, _p0, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    4040           63 :           if (res) return res;
    4041              :         }
    4042           56 :         break;
    4043              :       }
    4044          112 :     case NE_EXPR:
    4045          112 :       {
    4046          112 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4047          112 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4048          112 :         {
    4049          112 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4050          112 :           tree res = generic_simplify_509 (loc, type, _p0, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    4051          112 :           if (res) return res;
    4052              :         }
    4053          107 :         break;
    4054              :       }
    4055            0 :     case GE_EXPR:
    4056            0 :       {
    4057            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4058            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4059            0 :         {
    4060            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4061            0 :           tree res = generic_simplify_509 (loc, type, _p0, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    4062            0 :           if (res) return res;
    4063              :         }
    4064            0 :         break;
    4065              :       }
    4066           66 :     case GT_EXPR:
    4067           66 :       {
    4068           66 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4069           66 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4070           66 :         {
    4071           66 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4072           66 :           tree res = generic_simplify_509 (loc, type, _p0, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    4073           66 :           if (res) return res;
    4074              :         }
    4075           66 :         break;
    4076              :       }
    4077            0 :     case UNORDERED_EXPR:
    4078            0 :       {
    4079            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4080            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4081            0 :         {
    4082            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4083            0 :           tree res = generic_simplify_509 (loc, type, _p0, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    4084            0 :           if (res) return res;
    4085              :         }
    4086            0 :         break;
    4087              :       }
    4088            0 :     case ORDERED_EXPR:
    4089            0 :       {
    4090            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4091            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4092            0 :         {
    4093            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4094            0 :           tree res = generic_simplify_509 (loc, type, _p0, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    4095            0 :           if (res) return res;
    4096              :         }
    4097            0 :         break;
    4098              :       }
    4099            0 :     case UNLT_EXPR:
    4100            0 :       {
    4101            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4102            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4103            0 :         {
    4104            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4105            0 :           tree res = generic_simplify_509 (loc, type, _p0, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    4106            0 :           if (res) return res;
    4107              :         }
    4108            0 :         break;
    4109              :       }
    4110            0 :     case UNLE_EXPR:
    4111            0 :       {
    4112            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4113            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4114            0 :         {
    4115            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4116            0 :           tree res = generic_simplify_509 (loc, type, _p0, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    4117            0 :           if (res) return res;
    4118              :         }
    4119            0 :         break;
    4120              :       }
    4121            0 :     case UNGT_EXPR:
    4122            0 :       {
    4123            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4124            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4125            0 :         {
    4126            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4127            0 :           tree res = generic_simplify_509 (loc, type, _p0, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    4128            0 :           if (res) return res;
    4129              :         }
    4130            0 :         break;
    4131              :       }
    4132            0 :     case UNGE_EXPR:
    4133            0 :       {
    4134            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4135            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4136            0 :         {
    4137            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4138            0 :           tree res = generic_simplify_509 (loc, type, _p0, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    4139            0 :           if (res) return res;
    4140              :         }
    4141            0 :         break;
    4142              :       }
    4143            0 :     case UNEQ_EXPR:
    4144            0 :       {
    4145            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4146            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4147            0 :         {
    4148            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4149            0 :           tree res = generic_simplify_509 (loc, type, _p0, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    4150            0 :           if (res) return res;
    4151              :         }
    4152            0 :         break;
    4153              :       }
    4154            0 :     case LTGT_EXPR:
    4155            0 :       {
    4156            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4157            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4158            0 :         {
    4159            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4160            0 :           tree res = generic_simplify_509 (loc, type, _p0, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    4161            0 :           if (res) return res;
    4162              :         }
    4163            0 :         break;
    4164              :       }
    4165              :     default:;
    4166              :     }
    4167              :   return NULL_TREE;
    4168              : }
    4169              : 
    4170              : tree
    4171      2202070 : generic_simplify_TRUNC_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    4172              : {
    4173      2202070 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    4174      2202070 :   if (integer_onep (_p1))
    4175              :     {
    4176        17750 :       {
    4177        17750 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4178        17750 :         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4179        17750 :         if (res) return res;
    4180              :       }
    4181              :     }
    4182      2184320 :   switch (TREE_CODE (_p0))
    4183              :     {
    4184       152653 :     CASE_CONVERT:
    4185       152653 :       {
    4186       152653 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4187       152653 :         switch (TREE_CODE (_p1))
    4188              :           {
    4189        36078 :           CASE_CONVERT:
    4190        36078 :             {
    4191        36078 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4192        36078 :               switch (TREE_CODE (_q40))
    4193              :                 {
    4194            0 :                 case LSHIFT_EXPR:
    4195            0 :                   {
    4196            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    4197            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    4198            0 :                     if (integer_onep (_q50))
    4199              :                       {
    4200            0 :                         {
    4201            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q50, _q51 };
    4202            0 :                           tree res = generic_simplify_308 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4203            0 :                           if (res) return res;
    4204              :                         }
    4205              :                       }
    4206              :                     break;
    4207              :                   }
    4208              :                 default:;
    4209              :                 }
    4210              :               break;
    4211              :             }
    4212            8 :           case LSHIFT_EXPR:
    4213            8 :             {
    4214            8 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4215            8 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4216            8 :               if (integer_onep (_q40))
    4217              :                 {
    4218            7 :                   {
    4219            7 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q41 };
    4220            7 :                     tree res = generic_simplify_308 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4221            7 :                     if (res) return res;
    4222              :                   }
    4223              :                 }
    4224              :               break;
    4225              :             }
    4226              :           default:;
    4227              :           }
    4228              :         break;
    4229              :       }
    4230      2184320 :     default:;
    4231              :     }
    4232      2184320 :   switch (TREE_CODE (_p1))
    4233              :     {
    4234       128379 :     CASE_CONVERT:
    4235       128379 :       {
    4236       128379 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4237       128379 :         switch (TREE_CODE (_q30))
    4238              :           {
    4239            7 :           case LSHIFT_EXPR:
    4240            7 :             {
    4241            7 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4242            7 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4243            7 :               if (integer_onep (_q40))
    4244              :                 {
    4245            7 :                   {
    4246            7 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q40, _q41 };
    4247            7 :                     tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4248            7 :                     if (res) return res;
    4249              :                   }
    4250              :                 }
    4251              :               break;
    4252              :             }
    4253              :           default:;
    4254              :           }
    4255              :         break;
    4256              :       }
    4257           33 :     case LSHIFT_EXPR:
    4258           33 :       {
    4259           33 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4260           33 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4261           33 :         if (integer_onep (_q30))
    4262              :           {
    4263           16 :             {
    4264           16 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q31 };
    4265           16 :               tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4266           16 :               if (res) return res;
    4267              :             }
    4268              :           }
    4269              :         break;
    4270              :       }
    4271      2184311 :     default:;
    4272              :     }
    4273      2184311 :   if (integer_zerop (_p0))
    4274              :     {
    4275         2358 :       {
    4276         2358 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4277         2358 :         tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4278         2358 :         if (res) return res;
    4279              :       }
    4280              :     }
    4281      2182578 :   switch (TREE_CODE (_p1))
    4282              :     {
    4283        13294 :     case SSA_NAME:
    4284        13294 :       {
    4285        13294 :         {
    4286        13294 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4287        13294 :           tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4288        13294 :           if (res) return res;
    4289              :         }
    4290        13294 :         break;
    4291              :       }
    4292      2182578 :     default:;
    4293              :     }
    4294      2182578 : if (integer_minus_onep (_p1))
    4295              :   {
    4296         2520 :     {
    4297         2520 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4298         2520 :       tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4299         2520 :       if (res) return res;
    4300              :     }
    4301              :   }
    4302      2180956 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    4303              :     {
    4304          892 :       {
    4305          892 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4306          892 :         tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4307          892 :         if (res) return res;
    4308              :       }
    4309              :     }
    4310      2180845 :   switch (TREE_CODE (_p1))
    4311              :     {
    4312            1 :     case ABS_EXPR:
    4313            1 :       {
    4314            1 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4315            1 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4316              :           {
    4317            1 :             {
    4318            1 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4319            1 :               tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4320            1 :               if (res) return res;
    4321              :             }
    4322              :           }
    4323              :         break;
    4324              :       }
    4325      2180844 :     default:;
    4326              :     }
    4327      2180844 :   switch (TREE_CODE (_p0))
    4328              :     {
    4329            0 :     case ABS_EXPR:
    4330            0 :       {
    4331            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4332            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4333              :           {
    4334            0 :             {
    4335            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4336            0 :               tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4337            0 :               if (res) return res;
    4338              :             }
    4339              :           }
    4340              :         break;
    4341              :       }
    4342      2180844 :     default:;
    4343              :     }
    4344      2180844 :   switch (TREE_CODE (_p1))
    4345              :     {
    4346          657 :     case NEGATE_EXPR:
    4347          657 :       {
    4348          657 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4349          657 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4350              :           {
    4351            1 :             {
    4352            1 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4353            1 :               tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4354            1 :               if (res) return res;
    4355              :             }
    4356              :           }
    4357              :         break;
    4358              :       }
    4359      2180843 :     default:;
    4360              :     }
    4361      2180843 :   switch (TREE_CODE (_p0))
    4362              :     {
    4363          368 :     case NEGATE_EXPR:
    4364          368 :       {
    4365          368 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4366          368 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4367              :           {
    4368            0 :             {
    4369            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4370            0 :               tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4371            0 :               if (res) return res;
    4372              :             }
    4373              :           }
    4374              :         break;
    4375              :       }
    4376         9157 :     case TRUNC_DIV_EXPR:
    4377         9157 :       {
    4378         9157 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4379         9157 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4380         9157 :         switch (TREE_CODE (_q21))
    4381              :           {
    4382         9068 :           case INTEGER_CST:
    4383         9068 :             {
    4384         9068 :               switch (TREE_CODE (_p1))
    4385              :                 {
    4386         9067 :                 case INTEGER_CST:
    4387         9067 :                   {
    4388         9067 :                     {
    4389         9067 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    4390         9067 :                       tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4391         9067 :                       if (res) return res;
    4392              :                     }
    4393         9067 :                     break;
    4394              :                   }
    4395              :                 default:;
    4396              :                 }
    4397              :               break;
    4398              :             }
    4399              :           default:;
    4400              :           }
    4401              :         break;
    4402              :       }
    4403       152612 :     CASE_CONVERT:
    4404       152612 :       {
    4405       152612 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4406       152612 :         switch (TREE_CODE (_q20))
    4407              :           {
    4408            0 :           case BIT_AND_EXPR:
    4409            0 :             {
    4410            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4411            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4412            0 :               switch (TREE_CODE (_q31))
    4413              :                 {
    4414            0 :                 case INTEGER_CST:
    4415            0 :                   {
    4416            0 :                     switch (TREE_CODE (_p1))
    4417              :                       {
    4418            0 :                       case INTEGER_CST:
    4419            0 :                         {
    4420            0 :                           {
    4421            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    4422            0 :                             tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4423            0 :                             if (res) return res;
    4424              :                           }
    4425            0 :                           break;
    4426              :                         }
    4427              :                       default:;
    4428              :                       }
    4429              :                     break;
    4430              :                   }
    4431              :                 default:;
    4432              :                 }
    4433              :               break;
    4434              :             }
    4435              :           default:;
    4436              :           }
    4437              :         break;
    4438              :       }
    4439        45472 :     case BIT_AND_EXPR:
    4440        45472 :       {
    4441        45472 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4442        45472 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4443        45472 :         switch (TREE_CODE (_q21))
    4444              :           {
    4445        45446 :           case INTEGER_CST:
    4446        45446 :             {
    4447        45446 :               switch (TREE_CODE (_p1))
    4448              :                 {
    4449        45442 :                 case INTEGER_CST:
    4450        45442 :                   {
    4451        45442 :                     {
    4452        45442 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4453        45442 :                       tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4454        45442 :                       if (res) return res;
    4455              :                     }
    4456        45441 :                     break;
    4457              :                   }
    4458              :                 default:;
    4459              :                 }
    4460              :               break;
    4461              :             }
    4462              :           default:;
    4463              :           }
    4464              :         break;
    4465              :       }
    4466        35951 :     case MULT_EXPR:
    4467        35951 :       {
    4468        35951 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4469        35951 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4470        35951 :         if (integer_pow2p (_q21))
    4471              :           {
    4472         5945 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4473              :               {
    4474         5583 :                 {
    4475         5583 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4476         5583 :                   tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4477         5583 :                   if (res) return res;
    4478              :                 }
    4479              :               }
    4480              :           }
    4481        30509 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4482              :           {
    4483          163 :             {
    4484          163 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    4485          163 :               tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4486          163 :               if (res) return res;
    4487              :             }
    4488              :           }
    4489        30361 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4490              :           {
    4491           22 :             {
    4492           22 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    4493           22 :               tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4494           22 :               if (res) return res;
    4495              :             }
    4496              :           }
    4497        30352 :         switch (TREE_CODE (_q21))
    4498              :           {
    4499        30038 :           case INTEGER_CST:
    4500        30038 :             {
    4501        30038 :               switch (TREE_CODE (_p1))
    4502              :                 {
    4503            3 :                 case MULT_EXPR:
    4504            3 :                   {
    4505            3 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4506            3 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4507            3 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4508              :                       {
    4509            3 :                         switch (TREE_CODE (_q51))
    4510              :                           {
    4511            3 :                           case INTEGER_CST:
    4512            3 :                             {
    4513            3 :                               {
    4514            3 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    4515            3 :                                 tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, TRUNC_DIV_EXPR);
    4516            3 :                                 if (res) return res;
    4517              :                               }
    4518            0 :                               break;
    4519              :                             }
    4520              :                           default:;
    4521              :                           }
    4522              :                       }
    4523              :                     break;
    4524              :                   }
    4525              :                 default:;
    4526              :                 }
    4527              :               break;
    4528              :             }
    4529              :           default:;
    4530              :           }
    4531              :         break;
    4532              :       }
    4533            0 :     case VEC_COND_EXPR:
    4534            0 :       {
    4535            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4536            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4537            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4538            0 :         switch (TREE_CODE (_p1))
    4539              :           {
    4540            0 :           case VEC_COND_EXPR:
    4541            0 :             {
    4542            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    4543            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    4544            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    4545            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4546              :                 {
    4547            0 :                   {
    4548            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    4549            0 :                     if (VECTOR_TYPE_P (type)
    4550            0 :  && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
    4551              :  || types_match (type, TREE_TYPE (captures[2]))
    4552              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    4553              :  || (optimize_vectors_before_lowering_p ()
    4554              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    4555              : )
    4556              :                       {
    4557            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1569;
    4558            0 :                         {
    4559            0 :                           tree res_op0;
    4560            0 :                           res_op0 = captures[1];
    4561            0 :                           tree res_op1;
    4562            0 :                           {
    4563            0 :                             tree _o1[2], _r1;
    4564            0 :                             _o1[0] = captures[2];
    4565            0 :                             _o1[1] = captures[5];
    4566            0 :                             _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
    4567            0 :                             if (EXPR_P (_r1))
    4568            0 :                               goto next_after_fail1569;
    4569            0 :                             res_op1 = _r1;
    4570              :                           }
    4571            0 :                           tree res_op2;
    4572            0 :                           {
    4573            0 :                             tree _o1[2], _r1;
    4574            0 :                             _o1[0] = captures[3];
    4575            0 :                             _o1[1] = captures[6];
    4576            0 :                             _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
    4577            0 :                             if (EXPR_P (_r1))
    4578            0 :                               goto next_after_fail1569;
    4579            0 :                             res_op2 = _r1;
    4580              :                           }
    4581            0 :                           tree _r;
    4582            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4583            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
    4584            0 :                           return _r;
    4585              :                         }
    4586            0 : next_after_fail1569:;
    4587              :                       }
    4588              :                   }
    4589              :                 }
    4590              :               break;
    4591              :             }
    4592            0 :           default:;
    4593              :           }
    4594            0 :         {
    4595            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    4596            0 :           if (VECTOR_TYPE_P (type)
    4597            0 :  && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
    4598              :  || types_match (type, TREE_TYPE (captures[2]))
    4599              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    4600              :  || (optimize_vectors_before_lowering_p ()
    4601              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    4602              : )
    4603              :             {
    4604            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1570;
    4605            0 :               {
    4606            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1570;
    4607            0 :                 tree res_op0;
    4608            0 :                 res_op0 = captures[1];
    4609            0 :                 tree res_op1;
    4610            0 :                 {
    4611            0 :                   tree _o1[2], _r1;
    4612            0 :                   _o1[0] = captures[2];
    4613            0 :                   _o1[1] = unshare_expr (captures[4]);
    4614            0 :                   _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
    4615            0 :                   if (EXPR_P (_r1))
    4616            0 :                     goto next_after_fail1570;
    4617            0 :                   res_op1 = _r1;
    4618              :                 }
    4619            0 :                 tree res_op2;
    4620            0 :                 {
    4621            0 :                   tree _o1[2], _r1;
    4622            0 :                   _o1[0] = captures[3];
    4623            0 :                   _o1[1] = captures[4];
    4624            0 :                   _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
    4625            0 :                   if (EXPR_P (_r1))
    4626            0 :                     goto next_after_fail1570;
    4627            0 :                   res_op2 = _r1;
    4628              :                 }
    4629            0 :                 tree _r;
    4630            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4631            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
    4632            0 :                 return _r;
    4633              :               }
    4634            0 : next_after_fail1570:;
    4635              :             }
    4636              :         }
    4637            0 :         break;
    4638              :       }
    4639      2175240 :     default:;
    4640              :     }
    4641      2175240 : if (integer_onep (_p0))
    4642              :   {
    4643         1225 :     {
    4644         1225 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4645         1225 :       if (INTEGRAL_TYPE_P (type)
    4646         1222 :  && TYPE_PRECISION (type) > 1
    4647         1222 :  && !integer_zerop (captures[1])
    4648         1693 :  && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[1]))
    4649              : )
    4650              :         {
    4651          411 :           if (TYPE_UNSIGNED (type)
    4652              : )
    4653              :             {
    4654           54 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1571;
    4655           54 :               {
    4656           54 :                 tree res_op0;
    4657           54 :                 {
    4658           54 :                   tree _o1[2], _r1;
    4659           54 :                   _o1[0] = captures[1];
    4660           54 :                   _o1[1] =  build_one_cst (type);
    4661           54 :                   _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
    4662           54 :                   res_op0 = _r1;
    4663              :                 }
    4664           54 :                 tree _r;
    4665           54 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4666           54 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    4667            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    4668           54 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 986, __FILE__, __LINE__, true);
    4669           54 :                 return _r;
    4670              :               }
    4671            0 : next_after_fail1571:;
    4672              :             }
    4673              :           else
    4674              :             {
    4675          357 :               if (fold_before_rtl_expansion_p ()
    4676              : )
    4677              :                 {
    4678            0 :                   {
    4679            0 :  tree utype = unsigned_type_for (type);
    4680            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1572;
    4681            0 :                       {
    4682            0 :                         if (! tree_invariant_p (captures[1])) goto next_after_fail1572;
    4683            0 :                         tree res_op0;
    4684            0 :                         {
    4685            0 :                           tree _o1[2], _r1;
    4686            0 :                           {
    4687            0 :                             tree _o2[2], _r2;
    4688            0 :                             {
    4689            0 :                               tree _o3[1], _r3;
    4690            0 :                               _o3[0] = unshare_expr (captures[1]);
    4691            0 :                               if (TREE_TYPE (_o3[0]) != utype)
    4692              :                                 {
    4693            0 :                                   _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    4694              :                                 }
    4695              :                               else
    4696              :                                 _r3 = _o3[0];
    4697            0 :                               _o2[0] = _r3;
    4698              :                             }
    4699            0 :                             _o2[1] =  build_one_cst (utype);
    4700            0 :                             _r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4701            0 :                             _o1[0] = _r2;
    4702              :                           }
    4703            0 :                           _o1[1] =  build_int_cst (utype, 2);
    4704            0 :                           _r1 = fold_build2_loc (loc, LE_EXPR, boolean_type_node, _o1[0], _o1[1]);
    4705            0 :                           res_op0 = _r1;
    4706              :                         }
    4707            0 :                         tree res_op1;
    4708            0 :                         res_op1 = captures[1];
    4709            0 :                         tree res_op2;
    4710            0 :                         res_op2 =  build_zero_cst (type);
    4711            0 :                         tree _r;
    4712            0 :                         _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    4713            0 :                         if (TREE_SIDE_EFFECTS (captures[0]))
    4714            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    4715            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 987, __FILE__, __LINE__, true);
    4716            0 :                         return _r;
    4717              :                       }
    4718         1171 : next_after_fail1572:;
    4719              :                   }
    4720              :                 }
    4721              :             }
    4722              :         }
    4723              :     }
    4724              :   }
    4725      2175186 :   switch (TREE_CODE (_p1))
    4726              :     {
    4727            0 :     case VEC_COND_EXPR:
    4728            0 :       {
    4729            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4730            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4731            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    4732            0 :         {
    4733            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    4734            0 :           if (VECTOR_TYPE_P (type)
    4735            0 :  && (TREE_CODE_CLASS (TRUNC_DIV_EXPR) != tcc_comparison
    4736              :  || types_match (type, TREE_TYPE (captures[3]))
    4737              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    4738              :  || (optimize_vectors_before_lowering_p ()
    4739              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    4740              : )
    4741              :             {
    4742            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1573;
    4743            0 :               {
    4744            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1573;
    4745            0 :                 tree res_op0;
    4746            0 :                 res_op0 = captures[2];
    4747            0 :                 tree res_op1;
    4748            0 :                 {
    4749            0 :                   tree _o1[2], _r1;
    4750            0 :                   _o1[0] = unshare_expr (captures[0]);
    4751            0 :                   _o1[1] = captures[3];
    4752            0 :                   _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
    4753            0 :                   if (EXPR_P (_r1))
    4754            0 :                     goto next_after_fail1573;
    4755            0 :                   res_op1 = _r1;
    4756              :                 }
    4757            0 :                 tree res_op2;
    4758            0 :                 {
    4759            0 :                   tree _o1[2], _r1;
    4760            0 :                   _o1[0] = captures[0];
    4761            0 :                   _o1[1] = captures[4];
    4762            0 :                   _r1 = fold_build2_loc (loc, TRUNC_DIV_EXPR, type, _o1[0], _o1[1]);
    4763            0 :                   if (EXPR_P (_r1))
    4764            0 :                     goto next_after_fail1573;
    4765            0 :                   res_op2 = _r1;
    4766              :                 }
    4767            0 :                 tree _r;
    4768            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4769            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    4770            0 :                 return _r;
    4771              :               }
    4772            0 : next_after_fail1573:;
    4773              :             }
    4774              :         }
    4775            0 :         break;
    4776              :       }
    4777              :     default:;
    4778              :     }
    4779              :   return NULL_TREE;
    4780              : }
    4781              : 
    4782              : tree
    4783            0 : generic_simplify_ROUND_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    4784              : {
    4785            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    4786            0 :   if (integer_onep (_p1))
    4787              :     {
    4788            0 :       {
    4789            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4790            0 :         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4791            0 :         if (res) return res;
    4792              :       }
    4793              :     }
    4794            0 :   if (integer_zerop (_p0))
    4795              :     {
    4796            0 :       {
    4797            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4798            0 :         tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4799            0 :         if (res) return res;
    4800              :       }
    4801              :     }
    4802            0 :   switch (TREE_CODE (_p1))
    4803              :     {
    4804            0 :     case SSA_NAME:
    4805            0 :       {
    4806            0 :         {
    4807            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4808            0 :           tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4809            0 :           if (res) return res;
    4810              :         }
    4811            0 :         break;
    4812              :       }
    4813            0 :     default:;
    4814              :     }
    4815            0 : if (integer_minus_onep (_p1))
    4816              :   {
    4817            0 :     {
    4818            0 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4819            0 :       tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4820            0 :       if (res) return res;
    4821              :     }
    4822              :   }
    4823            0 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    4824              :     {
    4825            0 :       {
    4826            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4827            0 :         tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4828            0 :         if (res) return res;
    4829              :       }
    4830              :     }
    4831            0 :   switch (TREE_CODE (_p1))
    4832              :     {
    4833            0 :     case ABS_EXPR:
    4834            0 :       {
    4835            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4836            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4837              :           {
    4838            0 :             {
    4839            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4840            0 :               tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4841            0 :               if (res) return res;
    4842              :             }
    4843              :           }
    4844              :         break;
    4845              :       }
    4846            0 :     default:;
    4847              :     }
    4848            0 :   switch (TREE_CODE (_p0))
    4849              :     {
    4850            0 :     case ABS_EXPR:
    4851            0 :       {
    4852            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4853            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4854              :           {
    4855            0 :             {
    4856            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4857            0 :               tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4858            0 :               if (res) return res;
    4859              :             }
    4860              :           }
    4861              :         break;
    4862              :       }
    4863            0 :     default:;
    4864              :     }
    4865            0 :   switch (TREE_CODE (_p1))
    4866              :     {
    4867            0 :     case NEGATE_EXPR:
    4868            0 :       {
    4869            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4870            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4871              :           {
    4872            0 :             {
    4873            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4874            0 :               tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4875            0 :               if (res) return res;
    4876              :             }
    4877              :           }
    4878              :         break;
    4879              :       }
    4880            0 :     default:;
    4881              :     }
    4882            0 :   switch (TREE_CODE (_p0))
    4883              :     {
    4884            0 :     case NEGATE_EXPR:
    4885            0 :       {
    4886            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4887            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4888              :           {
    4889            0 :             {
    4890            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4891            0 :               tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4892            0 :               if (res) return res;
    4893              :             }
    4894              :           }
    4895              :         break;
    4896              :       }
    4897            0 :     CASE_CONVERT:
    4898            0 :       {
    4899            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4900            0 :         switch (TREE_CODE (_q20))
    4901              :           {
    4902            0 :           case BIT_AND_EXPR:
    4903            0 :             {
    4904            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4905            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4906            0 :               switch (TREE_CODE (_q31))
    4907              :                 {
    4908            0 :                 case INTEGER_CST:
    4909            0 :                   {
    4910            0 :                     switch (TREE_CODE (_p1))
    4911              :                       {
    4912            0 :                       case INTEGER_CST:
    4913            0 :                         {
    4914            0 :                           {
    4915            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    4916            0 :                             tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4917            0 :                             if (res) return res;
    4918              :                           }
    4919            0 :                           break;
    4920              :                         }
    4921              :                       default:;
    4922              :                       }
    4923              :                     break;
    4924              :                   }
    4925              :                 default:;
    4926              :                 }
    4927              :               break;
    4928              :             }
    4929              :           default:;
    4930              :           }
    4931              :         break;
    4932              :       }
    4933            0 :     case BIT_AND_EXPR:
    4934            0 :       {
    4935            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4936            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4937            0 :         switch (TREE_CODE (_q21))
    4938              :           {
    4939            0 :           case INTEGER_CST:
    4940            0 :             {
    4941            0 :               switch (TREE_CODE (_p1))
    4942              :                 {
    4943            0 :                 case INTEGER_CST:
    4944            0 :                   {
    4945            0 :                     {
    4946            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4947            0 :                       tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4948            0 :                       if (res) return res;
    4949              :                     }
    4950            0 :                     break;
    4951              :                   }
    4952              :                 default:;
    4953              :                 }
    4954              :               break;
    4955              :             }
    4956              :           default:;
    4957              :           }
    4958              :         break;
    4959              :       }
    4960            0 :     case MULT_EXPR:
    4961            0 :       {
    4962            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4963            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4964            0 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4965              :           {
    4966            0 :             {
    4967            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    4968            0 :               tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4969            0 :               if (res) return res;
    4970              :             }
    4971              :           }
    4972            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4973              :           {
    4974            0 :             {
    4975            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    4976            0 :               tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4977            0 :               if (res) return res;
    4978              :             }
    4979              :           }
    4980            0 :         switch (TREE_CODE (_q21))
    4981              :           {
    4982            0 :           case INTEGER_CST:
    4983            0 :             {
    4984            0 :               switch (TREE_CODE (_p1))
    4985              :                 {
    4986            0 :                 case MULT_EXPR:
    4987            0 :                   {
    4988            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4989            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4990            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4991              :                       {
    4992            0 :                         switch (TREE_CODE (_q51))
    4993              :                           {
    4994            0 :                           case INTEGER_CST:
    4995            0 :                             {
    4996            0 :                               {
    4997            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    4998            0 :                                 tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, ROUND_DIV_EXPR);
    4999            0 :                                 if (res) return res;
    5000              :                               }
    5001            0 :                               break;
    5002              :                             }
    5003              :                           default:;
    5004              :                           }
    5005              :                       }
    5006              :                     break;
    5007              :                   }
    5008              :                 default:;
    5009              :                 }
    5010              :               break;
    5011              :             }
    5012              :           default:;
    5013              :           }
    5014              :         break;
    5015              :       }
    5016            0 :     case VEC_COND_EXPR:
    5017            0 :       {
    5018            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5019            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5020            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    5021            0 :         switch (TREE_CODE (_p1))
    5022              :           {
    5023            0 :           case VEC_COND_EXPR:
    5024            0 :             {
    5025            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    5026            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    5027            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    5028            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5029              :                 {
    5030            0 :                   {
    5031            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    5032            0 :                     if (VECTOR_TYPE_P (type)
    5033            0 :  && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
    5034              :  || types_match (type, TREE_TYPE (captures[2]))
    5035              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    5036              :  || (optimize_vectors_before_lowering_p ()
    5037              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    5038              : )
    5039              :                       {
    5040            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1580;
    5041            0 :                         {
    5042            0 :                           tree res_op0;
    5043            0 :                           res_op0 = captures[1];
    5044            0 :                           tree res_op1;
    5045            0 :                           {
    5046            0 :                             tree _o1[2], _r1;
    5047            0 :                             _o1[0] = captures[2];
    5048            0 :                             _o1[1] = captures[5];
    5049            0 :                             _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
    5050            0 :                             if (EXPR_P (_r1))
    5051            0 :                               goto next_after_fail1580;
    5052            0 :                             res_op1 = _r1;
    5053              :                           }
    5054            0 :                           tree res_op2;
    5055            0 :                           {
    5056            0 :                             tree _o1[2], _r1;
    5057            0 :                             _o1[0] = captures[3];
    5058            0 :                             _o1[1] = captures[6];
    5059            0 :                             _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
    5060            0 :                             if (EXPR_P (_r1))
    5061            0 :                               goto next_after_fail1580;
    5062            0 :                             res_op2 = _r1;
    5063              :                           }
    5064            0 :                           tree _r;
    5065            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5066            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
    5067            0 :                           return _r;
    5068              :                         }
    5069            0 : next_after_fail1580:;
    5070              :                       }
    5071              :                   }
    5072              :                 }
    5073              :               break;
    5074              :             }
    5075            0 :           default:;
    5076              :           }
    5077            0 :         {
    5078            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    5079            0 :           if (VECTOR_TYPE_P (type)
    5080            0 :  && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
    5081              :  || types_match (type, TREE_TYPE (captures[2]))
    5082              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    5083              :  || (optimize_vectors_before_lowering_p ()
    5084              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    5085              : )
    5086              :             {
    5087            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1581;
    5088            0 :               {
    5089            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1581;
    5090            0 :                 tree res_op0;
    5091            0 :                 res_op0 = captures[1];
    5092            0 :                 tree res_op1;
    5093            0 :                 {
    5094            0 :                   tree _o1[2], _r1;
    5095            0 :                   _o1[0] = captures[2];
    5096            0 :                   _o1[1] = unshare_expr (captures[4]);
    5097            0 :                   _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
    5098            0 :                   if (EXPR_P (_r1))
    5099            0 :                     goto next_after_fail1581;
    5100            0 :                   res_op1 = _r1;
    5101              :                 }
    5102            0 :                 tree res_op2;
    5103            0 :                 {
    5104            0 :                   tree _o1[2], _r1;
    5105            0 :                   _o1[0] = captures[3];
    5106            0 :                   _o1[1] = captures[4];
    5107            0 :                   _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
    5108            0 :                   if (EXPR_P (_r1))
    5109            0 :                     goto next_after_fail1581;
    5110            0 :                   res_op2 = _r1;
    5111              :                 }
    5112            0 :                 tree _r;
    5113            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5114            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
    5115            0 :                 return _r;
    5116              :               }
    5117            0 : next_after_fail1581:;
    5118              :             }
    5119              :         }
    5120            0 :         break;
    5121              :       }
    5122            0 :     default:;
    5123              :     }
    5124            0 :   switch (TREE_CODE (_p1))
    5125              :     {
    5126            0 :     case VEC_COND_EXPR:
    5127            0 :       {
    5128            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5129            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5130            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    5131            0 :         {
    5132            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    5133            0 :           if (VECTOR_TYPE_P (type)
    5134            0 :  && (TREE_CODE_CLASS (ROUND_DIV_EXPR) != tcc_comparison
    5135              :  || types_match (type, TREE_TYPE (captures[3]))
    5136              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    5137              :  || (optimize_vectors_before_lowering_p ()
    5138              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    5139              : )
    5140              :             {
    5141            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1582;
    5142            0 :               {
    5143            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1582;
    5144            0 :                 tree res_op0;
    5145            0 :                 res_op0 = captures[2];
    5146            0 :                 tree res_op1;
    5147            0 :                 {
    5148            0 :                   tree _o1[2], _r1;
    5149            0 :                   _o1[0] = unshare_expr (captures[0]);
    5150            0 :                   _o1[1] = captures[3];
    5151            0 :                   _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
    5152            0 :                   if (EXPR_P (_r1))
    5153            0 :                     goto next_after_fail1582;
    5154            0 :                   res_op1 = _r1;
    5155              :                 }
    5156            0 :                 tree res_op2;
    5157            0 :                 {
    5158            0 :                   tree _o1[2], _r1;
    5159            0 :                   _o1[0] = captures[0];
    5160            0 :                   _o1[1] = captures[4];
    5161            0 :                   _r1 = fold_build2_loc (loc, ROUND_DIV_EXPR, type, _o1[0], _o1[1]);
    5162            0 :                   if (EXPR_P (_r1))
    5163            0 :                     goto next_after_fail1582;
    5164            0 :                   res_op2 = _r1;
    5165              :                 }
    5166            0 :                 tree _r;
    5167            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5168            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    5169            0 :                 return _r;
    5170              :               }
    5171            0 : next_after_fail1582:;
    5172              :             }
    5173              :         }
    5174            0 :         break;
    5175              :       }
    5176              :     default:;
    5177              :     }
    5178              :   return NULL_TREE;
    5179              : }
    5180              : 
    5181              : tree
    5182      6192347 : generic_simplify_RDIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    5183              : {
    5184      6192347 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    5185      6192347 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5186              :     {
    5187          762 :       {
    5188          762 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5189            3 :         if (FLOAT_TYPE_P (type)
    5190          762 :  && ! HONOR_NANS (type)
    5191          764 :  && ! HONOR_INFINITIES (type)
    5192              : )
    5193              :           {
    5194            2 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1589;
    5195            2 :             {
    5196            2 :               tree _r;
    5197            2 :               _r =  build_one_cst (type);
    5198            2 :               if (TREE_SIDE_EFFECTS (captures[0]))
    5199            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5200            2 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 988, __FILE__, __LINE__, true);
    5201            2 :               return _r;
    5202              :             }
    5203            0 : next_after_fail1589:;
    5204              :           }
    5205              :       }
    5206              :     }
    5207      6192345 :   switch (TREE_CODE (_p1))
    5208              :     {
    5209        18758 :     case NEGATE_EXPR:
    5210        18758 :       {
    5211        18758 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5212        18758 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5213              :           {
    5214            0 :             {
    5215            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5216            0 :               tree res = generic_simplify_329 (loc, type, _p0, _p1, captures);
    5217            0 :               if (res) return res;
    5218              :             }
    5219              :           }
    5220              :         break;
    5221              :       }
    5222      6192345 :     default:;
    5223              :     }
    5224      6192345 :   switch (TREE_CODE (_p0))
    5225              :     {
    5226        93872 :     case NEGATE_EXPR:
    5227        93872 :       {
    5228        93872 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5229        93872 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5230              :           {
    5231            2 :             {
    5232            2 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5233            2 :               tree res = generic_simplify_329 (loc, type, _p0, _p1, captures);
    5234            2 :               if (res) return res;
    5235              :             }
    5236              :           }
    5237              :         break;
    5238              :       }
    5239       538155 :     CASE_CONVERT:
    5240       538155 :       {
    5241       538155 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5242       538155 :         switch (TREE_CODE (_p1))
    5243              :           {
    5244        24744 :           CASE_CONVERT:
    5245        24744 :             {
    5246        24744 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5247        24744 :               switch (TREE_CODE (_q40))
    5248              :                 {
    5249            0 :                 case ABS_EXPR:
    5250            0 :                   {
    5251            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5252            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5253              :                       {
    5254            0 :                         {
    5255            0 :                           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5256            0 :                           tree res = generic_simplify_330 (loc, type, _p0, _p1, captures);
    5257            0 :                           if (res) return res;
    5258              :                         }
    5259              :                       }
    5260              :                     break;
    5261              :                   }
    5262              :                 default:;
    5263              :                 }
    5264              :               break;
    5265              :             }
    5266       538155 :           default:;
    5267              :           }
    5268       538155 :         switch (TREE_CODE (_q20))
    5269              :           {
    5270            0 :           case ABS_EXPR:
    5271            0 :             {
    5272            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5273            0 :               switch (TREE_CODE (_p1))
    5274              :                 {
    5275            0 :                 CASE_CONVERT:
    5276            0 :                   {
    5277            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5278            0 :                     if ((_q50 == _q30 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q30, 0) && types_match (_q50, _q30)))
    5279              :                       {
    5280            0 :                         {
    5281            0 :                           tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    5282            0 :                           tree res = generic_simplify_330 (loc, type, _p0, _p1, captures);
    5283            0 :                           if (res) return res;
    5284              :                         }
    5285              :                       }
    5286              :                     break;
    5287              :                   }
    5288              :                 default:;
    5289              :                 }
    5290              :               break;
    5291              :             }
    5292              :           default:;
    5293              :           }
    5294              :         break;
    5295              :       }
    5296      6192345 :     default:;
    5297              :     }
    5298      6192345 :   switch (TREE_CODE (_p1))
    5299              :     {
    5300           48 :     case ABS_EXPR:
    5301           48 :       {
    5302           48 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5303           48 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5304              :           {
    5305            0 :             {
    5306            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5307            0 :               tree res = generic_simplify_330 (loc, type, _p0, _p1, captures);
    5308            0 :               if (res) return res;
    5309              :             }
    5310              :           }
    5311              :         break;
    5312              :       }
    5313      6192345 :     default:;
    5314              :     }
    5315      6192345 :   switch (TREE_CODE (_p0))
    5316              :     {
    5317          146 :     case ABS_EXPR:
    5318          146 :       {
    5319          146 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5320          146 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5321              :           {
    5322            0 :             {
    5323            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5324            0 :               tree res = generic_simplify_330 (loc, type, _p0, _p1, captures);
    5325            0 :               if (res) return res;
    5326              :             }
    5327              :           }
    5328              :         break;
    5329              :       }
    5330      6192345 :     default:;
    5331              :     }
    5332      6192345 :   if (real_onep (_p1))
    5333              :     {
    5334           86 :       {
    5335           86 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5336           86 :         if (!tree_expr_maybe_signaling_nan_p (captures[0])
    5337              : )
    5338              :           {
    5339           86 :             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1590;
    5340           86 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1590;
    5341           86 :             {
    5342           86 :               tree res_op0;
    5343           86 :               res_op0 = captures[0];
    5344           86 :               tree _r;
    5345           86 :               _r = non_lvalue_loc (loc, res_op0);
    5346           86 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 989, __FILE__, __LINE__, true);
    5347           86 :               return _r;
    5348              :             }
    5349              : next_after_fail1590:;
    5350              :           }
    5351              :       }
    5352              :     }
    5353      6192259 :   if (real_minus_onep (_p1))
    5354              :     {
    5355           36 :       {
    5356           36 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5357           36 :         if (!tree_expr_maybe_signaling_nan_p (captures[0])
    5358              : )
    5359              :           {
    5360           36 :             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1591;
    5361           36 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1591;
    5362           36 :             {
    5363           36 :               tree res_op0;
    5364           36 :               res_op0 = captures[0];
    5365           36 :               tree _r;
    5366           36 :               _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    5367           36 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 990, __FILE__, __LINE__, true);
    5368           36 :               return _r;
    5369              :             }
    5370              : next_after_fail1591:;
    5371              :           }
    5372              :       }
    5373              :     }
    5374      6192223 :   switch (TREE_CODE (_p0))
    5375              :     {
    5376        37106 :     case RDIV_EXPR:
    5377        37106 :       {
    5378        37106 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5379        37106 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5380        37106 :         {
    5381        37106 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    5382        37106 :           if (flag_reciprocal_math
    5383              : )
    5384              :             {
    5385           12 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1592;
    5386           12 :               {
    5387           12 :                 tree res_op0;
    5388           12 :                 res_op0 = captures[1];
    5389           12 :                 tree res_op1;
    5390           12 :                 {
    5391           12 :                   tree _o1[2], _r1;
    5392           12 :                   _o1[0] = captures[2];
    5393           12 :                   _o1[1] = captures[3];
    5394           12 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5395           12 :                   res_op1 = _r1;
    5396              :                 }
    5397           12 :                 tree _r;
    5398           12 :                 _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    5399           12 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 991, __FILE__, __LINE__, true);
    5400           12 :                 return _r;
    5401              :               }
    5402            0 : next_after_fail1592:;
    5403              :             }
    5404              :         }
    5405        37094 :         break;
    5406              :       }
    5407      6192211 :     default:;
    5408              :     }
    5409      6192211 :   switch (TREE_CODE (_p1))
    5410              :     {
    5411       950569 :     case MULT_EXPR:
    5412       950569 :       {
    5413       950569 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5414       950569 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5415       950569 :         switch (TREE_CODE (_q31))
    5416              :           {
    5417       373078 :           case REAL_CST:
    5418       373078 :             {
    5419       373078 :               {
    5420       373078 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
    5421       373078 :                 if (flag_reciprocal_math
    5422              : )
    5423              :                   {
    5424          224 :                     {
    5425          224 :  tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[3]);
    5426          224 :                         if (tem
    5427              : )
    5428              :                           {
    5429          224 :                             if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1593;
    5430          224 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1593;
    5431          224 :                             {
    5432          224 :                               tree res_op0;
    5433          224 :                               {
    5434          224 :                                 tree _o1[2], _r1;
    5435          224 :                                 _o1[0] = captures[0];
    5436          224 :                                 _o1[1] =  tem;
    5437          224 :                                 _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5438          224 :                                 res_op0 = _r1;
    5439              :                               }
    5440          224 :                               tree res_op1;
    5441          224 :                               res_op1 = captures[2];
    5442          224 :                               tree _r;
    5443          224 :                               _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    5444          224 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 992, __FILE__, __LINE__, true);
    5445          224 :                               return _r;
    5446              :                             }
    5447       372854 : next_after_fail1593:;
    5448              :                           }
    5449              :                     }
    5450              :                   }
    5451              :               }
    5452       372854 :               break;
    5453              :             }
    5454              :           default:;
    5455              :           }
    5456              :         break;
    5457              :       }
    5458            1 :     case RDIV_EXPR:
    5459            1 :       {
    5460            1 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5461            1 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5462            1 :         {
    5463            1 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
    5464            1 :           if (flag_reciprocal_math
    5465              : )
    5466              :             {
    5467            1 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1594;
    5468            1 :               {
    5469            1 :                 tree res_op0;
    5470            1 :                 {
    5471            1 :                   tree _o1[2], _r1;
    5472            1 :                   _o1[0] = captures[0];
    5473            1 :                   _o1[1] = captures[2];
    5474            1 :                   _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5475            1 :                   res_op0 = _r1;
    5476              :                 }
    5477            1 :                 tree res_op1;
    5478            1 :                 res_op1 = captures[3];
    5479            1 :                 tree _r;
    5480            1 :                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5481            1 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 993, __FILE__, __LINE__, true);
    5482            1 :                 return _r;
    5483              :               }
    5484            0 : next_after_fail1594:;
    5485              :             }
    5486              :         }
    5487            0 :         break;
    5488              :       }
    5489        18758 :     case NEGATE_EXPR:
    5490        18758 :       {
    5491        18758 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5492        18758 :         {
    5493        18758 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    5494        18758 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1595;
    5495        18758 :           {
    5496        18758 :             tree res_op0;
    5497        18758 :             {
    5498        18758 :               tree _o1[1], _r1;
    5499        18758 :               _o1[0] = captures[0];
    5500        18758 :               _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    5501        18758 :               res_op0 = _r1;
    5502              :             }
    5503        18758 :             tree res_op1;
    5504        18758 :             res_op1 = captures[1];
    5505        18758 :             tree _r;
    5506        18758 :             _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    5507        18758 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 994, __FILE__, __LINE__, true);
    5508        18758 :             return _r;
    5509              :           }
    5510            0 : next_after_fail1595:;
    5511              :         }
    5512            0 :         break;
    5513              :       }
    5514      1053501 :     case REAL_CST:
    5515      1053501 :       {
    5516      1053501 :         {
    5517      1053501 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5518      1053501 :           if (optimize
    5519              : )
    5520              :             {
    5521      1047176 :               if (flag_reciprocal_math
    5522      1047176 :  && !real_zerop (captures[1])
    5523              : )
    5524              :                 {
    5525          571 :                   {
    5526          571 :  tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
    5527          571 :                       if (tem
    5528              : )
    5529              :                         {
    5530          570 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1596;
    5531          570 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1596;
    5532          570 :                           {
    5533          570 :                             tree res_op0;
    5534          570 :                             res_op0 = captures[0];
    5535          570 :                             tree res_op1;
    5536          570 :                             res_op1 =  tem;
    5537          570 :                             tree _r;
    5538          570 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5539          570 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 995, __FILE__, __LINE__, true);
    5540          570 :                             return _r;
    5541              :                           }
    5542       735948 : next_after_fail1596:;
    5543              :                         }
    5544              :                   }
    5545              :                 }
    5546              :               else
    5547              :                 {
    5548      1046605 :                   if (REAL_CST != COMPLEX_CST
    5549              : )
    5550              :                     {
    5551      1046605 :                       {
    5552      1046605 :  tree inverse = exact_inverse (type, captures[1]);
    5553      1046605 :                           if (inverse
    5554              : )
    5555              :                             {
    5556       316983 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1597;
    5557       316983 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1597;
    5558       316983 :                               {
    5559       316983 :                                 tree res_op0;
    5560       316983 :                                 res_op0 = captures[0];
    5561       316983 :                                 tree res_op1;
    5562       316983 :                                 res_op1 =  inverse;
    5563       316983 :                                 tree _r;
    5564       316983 :                                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5565       316983 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 996, __FILE__, __LINE__, true);
    5566       316983 :                                 return _r;
    5567              :                               }
    5568       735948 : next_after_fail1597:;
    5569              :                             }
    5570              :                       }
    5571              :                     }
    5572              :                 }
    5573              :             }
    5574              :         }
    5575       735948 :         break;
    5576              :       }
    5577          114 :     case COMPLEX_CST:
    5578          114 :       {
    5579          114 :         {
    5580          114 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5581          114 :           if (optimize
    5582              : )
    5583              :             {
    5584          106 :               if (flag_reciprocal_math
    5585          106 :  && !real_zerop (captures[1])
    5586              : )
    5587              :                 {
    5588            7 :                   {
    5589            7 :  tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
    5590            7 :                       if (tem
    5591              : )
    5592              :                         {
    5593            7 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1598;
    5594            7 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1598;
    5595            7 :                           {
    5596            7 :                             tree res_op0;
    5597            7 :                             res_op0 = captures[0];
    5598            7 :                             tree res_op1;
    5599            7 :                             res_op1 =  tem;
    5600            7 :                             tree _r;
    5601            7 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5602            7 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 995, __FILE__, __LINE__, true);
    5603            7 :                             return _r;
    5604              :                           }
    5605          107 : next_after_fail1598:;
    5606              :                         }
    5607              :                   }
    5608              :                 }
    5609              :               else
    5610              :                 {
    5611              :                   if (COMPLEX_CST != COMPLEX_CST
    5612              : )
    5613              :                     {
    5614              :                       {
    5615              :  tree inverse = exact_inverse (type, captures[1]);
    5616              :                           if (inverse
    5617              : )
    5618              :                             {
    5619              :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1599;
    5620              :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1599;
    5621              :                               {
    5622              :                                 tree res_op0;
    5623              :                                 res_op0 = captures[0];
    5624              :                                 tree res_op1;
    5625              :                                 res_op1 =  inverse;
    5626              :                                 tree _r;
    5627              :                                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5628              :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 996, __FILE__, __LINE__, true);
    5629              :                                 return _r;
    5630              :                               }
    5631              : next_after_fail1599:;
    5632              :                             }
    5633              :                       }
    5634              :                     }
    5635              :                 }
    5636              :             }
    5637              :         }
    5638          107 :         break;
    5639              :       }
    5640           45 :     case VECTOR_CST:
    5641           45 :       {
    5642           45 :         {
    5643           45 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5644           45 :           if (optimize
    5645              : )
    5646              :             {
    5647           41 :               if (flag_reciprocal_math
    5648           41 :  && !real_zerop (captures[1])
    5649              : )
    5650              :                 {
    5651            4 :                   {
    5652            4 :  tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
    5653            4 :                       if (tem
    5654              : )
    5655              :                         {
    5656            0 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1600;
    5657            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1600;
    5658            0 :                           {
    5659            0 :                             tree res_op0;
    5660            0 :                             res_op0 = captures[0];
    5661            0 :                             tree res_op1;
    5662            0 :                             res_op1 =  tem;
    5663            0 :                             tree _r;
    5664            0 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5665            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 995, __FILE__, __LINE__, true);
    5666            0 :                             return _r;
    5667              :                           }
    5668           15 : next_after_fail1600:;
    5669              :                         }
    5670              :                   }
    5671              :                 }
    5672              :               else
    5673              :                 {
    5674           37 :                   if (VECTOR_CST != COMPLEX_CST
    5675              : )
    5676              :                     {
    5677           37 :                       {
    5678           37 :  tree inverse = exact_inverse (type, captures[1]);
    5679           37 :                           if (inverse
    5680              : )
    5681              :                             {
    5682           30 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1601;
    5683           30 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1601;
    5684           30 :                               {
    5685           30 :                                 tree res_op0;
    5686           30 :                                 res_op0 = captures[0];
    5687           30 :                                 tree res_op1;
    5688           30 :                                 res_op1 =  inverse;
    5689           30 :                                 tree _r;
    5690           30 :                                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5691           30 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 996, __FILE__, __LINE__, true);
    5692           30 :                                 return _r;
    5693              :                               }
    5694           15 : next_after_fail1601:;
    5695              :                             }
    5696              :                       }
    5697              :                     }
    5698              :                 }
    5699              :             }
    5700              :         }
    5701           15 :         break;
    5702              :       }
    5703      5855638 :     default:;
    5704              :     }
    5705      5855638 :   switch (TREE_CODE (_p0))
    5706              :     {
    5707            0 :     case VEC_COND_EXPR:
    5708            0 :       {
    5709            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5710            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5711            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    5712            0 :         switch (TREE_CODE (_p1))
    5713              :           {
    5714            0 :           case VEC_COND_EXPR:
    5715            0 :             {
    5716            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    5717            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    5718            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    5719            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5720              :                 {
    5721            0 :                   {
    5722            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    5723            0 :                     if (VECTOR_TYPE_P (type)
    5724            0 :  && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
    5725              :  || types_match (type, TREE_TYPE (captures[2]))
    5726              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    5727              :  || (optimize_vectors_before_lowering_p ()
    5728              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    5729              : )
    5730              :                       {
    5731            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1602;
    5732            0 :                         {
    5733            0 :                           tree res_op0;
    5734            0 :                           res_op0 = captures[1];
    5735            0 :                           tree res_op1;
    5736            0 :                           {
    5737            0 :                             tree _o1[2], _r1;
    5738            0 :                             _o1[0] = captures[2];
    5739            0 :                             _o1[1] = captures[5];
    5740            0 :                             _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
    5741            0 :                             if (EXPR_P (_r1))
    5742            0 :                               goto next_after_fail1602;
    5743            0 :                             res_op1 = _r1;
    5744              :                           }
    5745            0 :                           tree res_op2;
    5746            0 :                           {
    5747            0 :                             tree _o1[2], _r1;
    5748            0 :                             _o1[0] = captures[3];
    5749            0 :                             _o1[1] = captures[6];
    5750            0 :                             _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
    5751            0 :                             if (EXPR_P (_r1))
    5752            0 :                               goto next_after_fail1602;
    5753            0 :                             res_op2 = _r1;
    5754              :                           }
    5755            0 :                           tree _r;
    5756            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5757            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
    5758            0 :                           return _r;
    5759              :                         }
    5760            0 : next_after_fail1602:;
    5761              :                       }
    5762              :                   }
    5763              :                 }
    5764              :               break;
    5765              :             }
    5766            0 :           default:;
    5767              :           }
    5768            0 :         {
    5769            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    5770            0 :           if (VECTOR_TYPE_P (type)
    5771            0 :  && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
    5772              :  || types_match (type, TREE_TYPE (captures[2]))
    5773              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    5774              :  || (optimize_vectors_before_lowering_p ()
    5775              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    5776              : )
    5777              :             {
    5778            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1603;
    5779            0 :               {
    5780            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1603;
    5781            0 :                 tree res_op0;
    5782            0 :                 res_op0 = captures[1];
    5783            0 :                 tree res_op1;
    5784            0 :                 {
    5785            0 :                   tree _o1[2], _r1;
    5786            0 :                   _o1[0] = captures[2];
    5787            0 :                   _o1[1] = unshare_expr (captures[4]);
    5788            0 :                   _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
    5789            0 :                   if (EXPR_P (_r1))
    5790            0 :                     goto next_after_fail1603;
    5791            0 :                   res_op1 = _r1;
    5792              :                 }
    5793            0 :                 tree res_op2;
    5794            0 :                 {
    5795            0 :                   tree _o1[2], _r1;
    5796            0 :                   _o1[0] = captures[3];
    5797            0 :                   _o1[1] = captures[4];
    5798            0 :                   _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
    5799            0 :                   if (EXPR_P (_r1))
    5800            0 :                     goto next_after_fail1603;
    5801            0 :                   res_op2 = _r1;
    5802              :                 }
    5803            0 :                 tree _r;
    5804            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5805            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
    5806            0 :                 return _r;
    5807              :               }
    5808            0 : next_after_fail1603:;
    5809              :             }
    5810              :         }
    5811            0 :         break;
    5812              :       }
    5813      5855638 :     default:;
    5814              :     }
    5815      5855638 :   switch (TREE_CODE (_p1))
    5816              :     {
    5817            0 :     case VEC_COND_EXPR:
    5818            0 :       {
    5819            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5820            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5821            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    5822            0 :         {
    5823            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    5824            0 :           if (VECTOR_TYPE_P (type)
    5825            0 :  && (TREE_CODE_CLASS (RDIV_EXPR) != tcc_comparison
    5826              :  || types_match (type, TREE_TYPE (captures[3]))
    5827              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    5828              :  || (optimize_vectors_before_lowering_p ()
    5829              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    5830              : )
    5831              :             {
    5832            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1604;
    5833            0 :               {
    5834            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1604;
    5835            0 :                 tree res_op0;
    5836            0 :                 res_op0 = captures[2];
    5837            0 :                 tree res_op1;
    5838            0 :                 {
    5839            0 :                   tree _o1[2], _r1;
    5840            0 :                   _o1[0] = unshare_expr (captures[0]);
    5841            0 :                   _o1[1] = captures[3];
    5842            0 :                   _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
    5843            0 :                   if (EXPR_P (_r1))
    5844            0 :                     goto next_after_fail1604;
    5845            0 :                   res_op1 = _r1;
    5846              :                 }
    5847            0 :                 tree res_op2;
    5848            0 :                 {
    5849            0 :                   tree _o1[2], _r1;
    5850            0 :                   _o1[0] = captures[0];
    5851            0 :                   _o1[1] = captures[4];
    5852            0 :                   _r1 = fold_build2_loc (loc, RDIV_EXPR, type, _o1[0], _o1[1]);
    5853            0 :                   if (EXPR_P (_r1))
    5854            0 :                     goto next_after_fail1604;
    5855            0 :                   res_op2 = _r1;
    5856              :                 }
    5857            0 :                 tree _r;
    5858            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5859            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    5860            0 :                 return _r;
    5861              :               }
    5862            0 : next_after_fail1604:;
    5863              :             }
    5864              :         }
    5865            0 :         break;
    5866              :       }
    5867       785280 :     case CALL_EXPR:
    5868       785280 :       switch (get_call_combined_fn (_p1))
    5869              :         {
    5870           20 :         case CFN_BUILT_IN_SQRTF:
    5871           20 :           if (call_expr_nargs (_p1) == 1)
    5872              :     {
    5873           20 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5874           20 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5875              :                 {
    5876            0 :                   {
    5877            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5878            0 :                     tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF);
    5879            0 :                     if (res) return res;
    5880              :                   }
    5881              :                 }
    5882           20 :               switch (TREE_CODE (_q30))
    5883              :                 {
    5884            0 :                 case RDIV_EXPR:
    5885            0 :                   {
    5886            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    5887            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    5888            0 :                     {
    5889            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
    5890            0 :                       if (flag_unsafe_math_optimizations
    5891              : )
    5892              :                         {
    5893            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1605;
    5894            0 :                           {
    5895            0 :                             tree res_op0;
    5896            0 :                             res_op0 = captures[0];
    5897            0 :                             tree res_op1;
    5898            0 :                             {
    5899            0 :                               tree _o1[1], _r1;
    5900            0 :                               {
    5901            0 :                                 tree _o2[2], _r2;
    5902            0 :                                 _o2[0] = captures[4];
    5903            0 :                                 _o2[1] = captures[3];
    5904            0 :                                 _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    5905            0 :                                 _o1[0] = _r2;
    5906              :                               }
    5907            0 :                               _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, TREE_TYPE (_o1[0]), 1, _o1[0]);
    5908            0 :                               if (!_r1)
    5909            0 :                                 goto next_after_fail1605;
    5910            0 :                               res_op1 = _r1;
    5911              :                             }
    5912            0 :                             tree _r;
    5913            0 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5914            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
    5915            0 :                             return _r;
    5916              :                           }
    5917            0 : next_after_fail1605:;
    5918              :                         }
    5919              :                     }
    5920            0 :                     break;
    5921              :                   }
    5922              :                 default:;
    5923              :                 }
    5924              :             }
    5925              :           break;
    5926            0 :         case CFN_BUILT_IN_SQRTL:
    5927            0 :           if (call_expr_nargs (_p1) == 1)
    5928              :     {
    5929            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5930            0 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5931              :                 {
    5932            0 :                   {
    5933            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5934            0 :                     tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL);
    5935            0 :                     if (res) return res;
    5936              :                   }
    5937              :                 }
    5938            0 :               switch (TREE_CODE (_q30))
    5939              :                 {
    5940            0 :                 case RDIV_EXPR:
    5941            0 :                   {
    5942            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    5943            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    5944            0 :                     {
    5945            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
    5946            0 :                       if (flag_unsafe_math_optimizations
    5947              : )
    5948              :                         {
    5949            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1606;
    5950            0 :                           {
    5951            0 :                             tree res_op0;
    5952            0 :                             res_op0 = captures[0];
    5953            0 :                             tree res_op1;
    5954            0 :                             {
    5955            0 :                               tree _o1[1], _r1;
    5956            0 :                               {
    5957            0 :                                 tree _o2[2], _r2;
    5958            0 :                                 _o2[0] = captures[4];
    5959            0 :                                 _o2[1] = captures[3];
    5960            0 :                                 _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    5961            0 :                                 _o1[0] = _r2;
    5962              :                               }
    5963            0 :                               _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, TREE_TYPE (_o1[0]), 1, _o1[0]);
    5964            0 :                               if (!_r1)
    5965            0 :                                 goto next_after_fail1606;
    5966            0 :                               res_op1 = _r1;
    5967              :                             }
    5968            0 :                             tree _r;
    5969            0 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5970            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
    5971            0 :                             return _r;
    5972              :                           }
    5973            0 : next_after_fail1606:;
    5974              :                         }
    5975              :                     }
    5976            0 :                     break;
    5977              :                   }
    5978              :                 default:;
    5979              :                 }
    5980              :             }
    5981              :           break;
    5982           27 :         case CFN_BUILT_IN_EXP:
    5983           27 :           if (call_expr_nargs (_p1) == 1)
    5984              :     {
    5985           27 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5986           27 :               {
    5987           27 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    5988           27 :                 if (flag_unsafe_math_optimizations
    5989              : )
    5990              :                   {
    5991           27 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1607;
    5992           27 :                     {
    5993           27 :                       tree res_op0;
    5994           27 :                       res_op0 = captures[0];
    5995           27 :                       tree res_op1;
    5996           27 :                       {
    5997           27 :                         tree _o1[1], _r1;
    5998           27 :                         {
    5999           27 :                           tree _o2[1], _r2;
    6000           27 :                           _o2[0] = captures[2];
    6001           27 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6002           27 :                           _o1[0] = _r2;
    6003              :                         }
    6004           27 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6005           27 :                         if (!_r1)
    6006            0 :                           goto next_after_fail1607;
    6007           27 :                         res_op1 = _r1;
    6008              :                       }
    6009           27 :                       tree _r;
    6010           27 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6011           27 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6012           27 :                       return _r;
    6013              :                     }
    6014            0 : next_after_fail1607:;
    6015              :                   }
    6016              :               }
    6017              :             }
    6018              :           break;
    6019           24 :         case CFN_BUILT_IN_EXP10F:
    6020           24 :           if (call_expr_nargs (_p1) == 1)
    6021              :     {
    6022           24 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6023           24 :               {
    6024           24 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6025           24 :                 if (flag_unsafe_math_optimizations
    6026              : )
    6027              :                   {
    6028           24 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1608;
    6029           24 :                     {
    6030           24 :                       tree res_op0;
    6031           24 :                       res_op0 = captures[0];
    6032           24 :                       tree res_op1;
    6033           24 :                       {
    6034           24 :                         tree _o1[1], _r1;
    6035           24 :                         {
    6036           24 :                           tree _o2[1], _r2;
    6037           24 :                           _o2[0] = captures[2];
    6038           24 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6039           24 :                           _o1[0] = _r2;
    6040              :                         }
    6041           24 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6042           24 :                         if (!_r1)
    6043            0 :                           goto next_after_fail1608;
    6044           24 :                         res_op1 = _r1;
    6045              :                       }
    6046           24 :                       tree _r;
    6047           24 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6048           24 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6049           24 :                       return _r;
    6050              :                     }
    6051            0 : next_after_fail1608:;
    6052              :                   }
    6053              :               }
    6054              :             }
    6055              :           break;
    6056           24 :         case CFN_BUILT_IN_EXP10L:
    6057           24 :           if (call_expr_nargs (_p1) == 1)
    6058              :     {
    6059           24 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6060           24 :               {
    6061           24 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6062           24 :                 if (flag_unsafe_math_optimizations
    6063              : )
    6064              :                   {
    6065           24 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1609;
    6066           24 :                     {
    6067           24 :                       tree res_op0;
    6068           24 :                       res_op0 = captures[0];
    6069           24 :                       tree res_op1;
    6070           24 :                       {
    6071           24 :                         tree _o1[1], _r1;
    6072           24 :                         {
    6073           24 :                           tree _o2[1], _r2;
    6074           24 :                           _o2[0] = captures[2];
    6075           24 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6076           24 :                           _o1[0] = _r2;
    6077              :                         }
    6078           24 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6079           24 :                         if (!_r1)
    6080            0 :                           goto next_after_fail1609;
    6081           24 :                         res_op1 = _r1;
    6082              :                       }
    6083           24 :                       tree _r;
    6084           24 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6085           24 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6086           24 :                       return _r;
    6087              :                     }
    6088            0 : next_after_fail1609:;
    6089              :                   }
    6090              :               }
    6091              :             }
    6092              :           break;
    6093            3 :         case CFN_BUILT_IN_CBRT:
    6094            3 :           if (call_expr_nargs (_p1) == 1)
    6095              :     {
    6096            3 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6097            3 :               switch (TREE_CODE (_q30))
    6098              :                 {
    6099            2 :                 case RDIV_EXPR:
    6100            2 :                   {
    6101            2 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    6102            2 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    6103            2 :                     {
    6104            2 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
    6105            2 :                       if (flag_unsafe_math_optimizations
    6106              : )
    6107              :                         {
    6108            2 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1610;
    6109            2 :                           {
    6110            2 :                             tree res_op0;
    6111            2 :                             res_op0 = captures[0];
    6112            2 :                             tree res_op1;
    6113            2 :                             {
    6114            2 :                               tree _o1[1], _r1;
    6115            2 :                               {
    6116            2 :                                 tree _o2[2], _r2;
    6117            2 :                                 _o2[0] = captures[4];
    6118            2 :                                 _o2[1] = captures[3];
    6119            2 :                                 _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    6120            2 :                                 _o1[0] = _r2;
    6121              :                               }
    6122            2 :                               _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6123            2 :                               if (!_r1)
    6124            0 :                                 goto next_after_fail1610;
    6125            2 :                               res_op1 = _r1;
    6126              :                             }
    6127            2 :                             tree _r;
    6128            2 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6129            2 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
    6130            2 :                             return _r;
    6131              :                           }
    6132            0 : next_after_fail1610:;
    6133              :                         }
    6134              :                     }
    6135            0 :                     break;
    6136              :                   }
    6137              :                 default:;
    6138              :                 }
    6139              :             }
    6140              :           break;
    6141           24 :         case CFN_BUILT_IN_EXP2:
    6142           24 :           if (call_expr_nargs (_p1) == 1)
    6143              :     {
    6144           24 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6145           24 :               {
    6146           24 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6147           24 :                 if (flag_unsafe_math_optimizations
    6148              : )
    6149              :                   {
    6150           24 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1611;
    6151           24 :                     {
    6152           24 :                       tree res_op0;
    6153           24 :                       res_op0 = captures[0];
    6154           24 :                       tree res_op1;
    6155           24 :                       {
    6156           24 :                         tree _o1[1], _r1;
    6157           24 :                         {
    6158           24 :                           tree _o2[1], _r2;
    6159           24 :                           _o2[0] = captures[2];
    6160           24 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6161           24 :                           _o1[0] = _r2;
    6162              :                         }
    6163           24 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6164           24 :                         if (!_r1)
    6165            0 :                           goto next_after_fail1611;
    6166           24 :                         res_op1 = _r1;
    6167              :                       }
    6168           24 :                       tree _r;
    6169           24 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6170           24 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6171           24 :                       return _r;
    6172              :                     }
    6173            0 : next_after_fail1611:;
    6174              :                   }
    6175              :               }
    6176              :             }
    6177              :           break;
    6178           25 :         case CFN_BUILT_IN_EXPF:
    6179           25 :           if (call_expr_nargs (_p1) == 1)
    6180              :     {
    6181           25 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6182           25 :               {
    6183           25 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6184           25 :                 if (flag_unsafe_math_optimizations
    6185              : )
    6186              :                   {
    6187           25 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1612;
    6188           25 :                     {
    6189           25 :                       tree res_op0;
    6190           25 :                       res_op0 = captures[0];
    6191           25 :                       tree res_op1;
    6192           25 :                       {
    6193           25 :                         tree _o1[1], _r1;
    6194           25 :                         {
    6195           25 :                           tree _o2[1], _r2;
    6196           25 :                           _o2[0] = captures[2];
    6197           25 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6198           25 :                           _o1[0] = _r2;
    6199              :                         }
    6200           25 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6201           25 :                         if (!_r1)
    6202            0 :                           goto next_after_fail1612;
    6203           25 :                         res_op1 = _r1;
    6204              :                       }
    6205           25 :                       tree _r;
    6206           25 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6207           25 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6208           25 :                       return _r;
    6209              :                     }
    6210            0 : next_after_fail1612:;
    6211              :                   }
    6212              :               }
    6213              :             }
    6214              :           break;
    6215           25 :         case CFN_BUILT_IN_EXPL:
    6216           25 :           if (call_expr_nargs (_p1) == 1)
    6217              :     {
    6218           25 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6219           25 :               {
    6220           25 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6221           25 :                 if (flag_unsafe_math_optimizations
    6222              : )
    6223              :                   {
    6224           25 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1613;
    6225           25 :                     {
    6226           25 :                       tree res_op0;
    6227           25 :                       res_op0 = captures[0];
    6228           25 :                       tree res_op1;
    6229           25 :                       {
    6230           25 :                         tree _o1[1], _r1;
    6231           25 :                         {
    6232           25 :                           tree _o2[1], _r2;
    6233           25 :                           _o2[0] = captures[2];
    6234           25 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6235           25 :                           _o1[0] = _r2;
    6236              :                         }
    6237           25 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6238           25 :                         if (!_r1)
    6239            0 :                           goto next_after_fail1613;
    6240           25 :                         res_op1 = _r1;
    6241              :                       }
    6242           25 :                       tree _r;
    6243           25 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6244           25 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6245           25 :                       return _r;
    6246              :                     }
    6247            0 : next_after_fail1613:;
    6248              :                   }
    6249              :               }
    6250              :             }
    6251              :           break;
    6252          298 :         case CFN_BUILT_IN_SQRT:
    6253          298 :           if (call_expr_nargs (_p1) == 1)
    6254              :     {
    6255          298 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6256          298 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6257              :                 {
    6258            0 :                   {
    6259            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6260            0 :                     tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT);
    6261            0 :                     if (res) return res;
    6262              :                   }
    6263              :                 }
    6264          298 :               switch (TREE_CODE (_q30))
    6265              :                 {
    6266            2 :                 case RDIV_EXPR:
    6267            2 :                   {
    6268            2 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    6269            2 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    6270            2 :                     {
    6271            2 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
    6272            2 :                       if (flag_unsafe_math_optimizations
    6273              : )
    6274              :                         {
    6275            2 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1614;
    6276            2 :                           {
    6277            2 :                             tree res_op0;
    6278            2 :                             res_op0 = captures[0];
    6279            2 :                             tree res_op1;
    6280            2 :                             {
    6281            2 :                               tree _o1[1], _r1;
    6282            2 :                               {
    6283            2 :                                 tree _o2[2], _r2;
    6284            2 :                                 _o2[0] = captures[4];
    6285            2 :                                 _o2[1] = captures[3];
    6286            2 :                                 _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    6287            2 :                                 _o1[0] = _r2;
    6288              :                               }
    6289            2 :                               _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6290            2 :                               if (!_r1)
    6291            0 :                                 goto next_after_fail1614;
    6292            2 :                               res_op1 = _r1;
    6293              :                             }
    6294            2 :                             tree _r;
    6295            2 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6296            2 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
    6297            2 :                             return _r;
    6298              :                           }
    6299            0 : next_after_fail1614:;
    6300              :                         }
    6301              :                     }
    6302            0 :                     break;
    6303              :                   }
    6304              :                 default:;
    6305              :                 }
    6306              :             }
    6307              :           break;
    6308            0 :         case CFN_EXP:
    6309            0 :           if (call_expr_nargs (_p1) == 1)
    6310              :     {
    6311            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6312            0 :               {
    6313            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6314            0 :                 if (flag_unsafe_math_optimizations
    6315              : )
    6316              :                   {
    6317            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1615;
    6318            0 :                     {
    6319            0 :                       tree res_op0;
    6320            0 :                       res_op0 = captures[0];
    6321            0 :                       tree res_op1;
    6322            0 :                       {
    6323            0 :                         tree _o1[1], _r1;
    6324            0 :                         {
    6325            0 :                           tree _o2[1], _r2;
    6326            0 :                           _o2[0] = captures[2];
    6327            0 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6328            0 :                           _o1[0] = _r2;
    6329              :                         }
    6330            0 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_EXP, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6331            0 :                         if (!_r1)
    6332            0 :                           goto next_after_fail1615;
    6333            0 :                         res_op1 = _r1;
    6334              :                       }
    6335            0 :                       tree _r;
    6336            0 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6337            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6338            0 :                       return _r;
    6339              :                     }
    6340            0 : next_after_fail1615:;
    6341              :                   }
    6342              :               }
    6343              :             }
    6344              :           break;
    6345           24 :         case CFN_BUILT_IN_POW10F:
    6346           24 :           if (call_expr_nargs (_p1) == 1)
    6347              :     {
    6348           24 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6349           24 :               {
    6350           24 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6351           24 :                 if (flag_unsafe_math_optimizations
    6352              : )
    6353              :                   {
    6354           24 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1616;
    6355           24 :                     {
    6356           24 :                       tree res_op0;
    6357           24 :                       res_op0 = captures[0];
    6358           24 :                       tree res_op1;
    6359           24 :                       {
    6360           24 :                         tree _o1[1], _r1;
    6361           24 :                         {
    6362           24 :                           tree _o2[1], _r2;
    6363           24 :                           _o2[0] = captures[2];
    6364           24 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6365           24 :                           _o1[0] = _r2;
    6366              :                         }
    6367           24 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6368           24 :                         if (!_r1)
    6369           24 :                           goto next_after_fail1616;
    6370            0 :                         res_op1 = _r1;
    6371              :                       }
    6372            0 :                       tree _r;
    6373            0 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6374            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6375            0 :                       return _r;
    6376              :                     }
    6377           24 : next_after_fail1616:;
    6378              :                   }
    6379              :               }
    6380              :             }
    6381              :           break;
    6382           24 :         case CFN_BUILT_IN_POW10L:
    6383           24 :           if (call_expr_nargs (_p1) == 1)
    6384              :     {
    6385           24 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6386           24 :               {
    6387           24 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6388           24 :                 if (flag_unsafe_math_optimizations
    6389              : )
    6390              :                   {
    6391           24 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1617;
    6392           24 :                     {
    6393           24 :                       tree res_op0;
    6394           24 :                       res_op0 = captures[0];
    6395           24 :                       tree res_op1;
    6396           24 :                       {
    6397           24 :                         tree _o1[1], _r1;
    6398           24 :                         {
    6399           24 :                           tree _o2[1], _r2;
    6400           24 :                           _o2[0] = captures[2];
    6401           24 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6402           24 :                           _o1[0] = _r2;
    6403              :                         }
    6404           24 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6405           24 :                         if (!_r1)
    6406           24 :                           goto next_after_fail1617;
    6407            0 :                         res_op1 = _r1;
    6408              :                       }
    6409            0 :                       tree _r;
    6410            0 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6411            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6412            0 :                       return _r;
    6413              :                     }
    6414           24 : next_after_fail1617:;
    6415              :                   }
    6416              :               }
    6417              :             }
    6418              :           break;
    6419            0 :         case CFN_EXP2:
    6420            0 :           if (call_expr_nargs (_p1) == 1)
    6421              :     {
    6422            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6423            0 :               {
    6424            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6425            0 :                 if (flag_unsafe_math_optimizations
    6426              : )
    6427              :                   {
    6428            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1618;
    6429            0 :                     {
    6430            0 :                       tree res_op0;
    6431            0 :                       res_op0 = captures[0];
    6432            0 :                       tree res_op1;
    6433            0 :                       {
    6434            0 :                         tree _o1[1], _r1;
    6435            0 :                         {
    6436            0 :                           tree _o2[1], _r2;
    6437            0 :                           _o2[0] = captures[2];
    6438            0 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6439            0 :                           _o1[0] = _r2;
    6440              :                         }
    6441            0 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_EXP2, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6442            0 :                         if (!_r1)
    6443            0 :                           goto next_after_fail1618;
    6444            0 :                         res_op1 = _r1;
    6445              :                       }
    6446            0 :                       tree _r;
    6447            0 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6448            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6449            0 :                       return _r;
    6450              :                     }
    6451            0 : next_after_fail1618:;
    6452              :                   }
    6453              :               }
    6454              :             }
    6455              :           break;
    6456            0 :         case CFN_SQRT:
    6457            0 :           if (call_expr_nargs (_p1) == 1)
    6458              :     {
    6459            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6460            0 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6461              :                 {
    6462            0 :                   {
    6463            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6464            0 :                     tree res = generic_simplify_331 (loc, type, _p0, _p1, captures, CFN_SQRT);
    6465            0 :                     if (res) return res;
    6466              :                   }
    6467              :                 }
    6468            0 :               switch (TREE_CODE (_q30))
    6469              :                 {
    6470            0 :                 case RDIV_EXPR:
    6471            0 :                   {
    6472            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    6473            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    6474            0 :                     {
    6475            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
    6476            0 :                       if (flag_unsafe_math_optimizations
    6477              : )
    6478              :                         {
    6479            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1619;
    6480            0 :                           {
    6481            0 :                             tree res_op0;
    6482            0 :                             res_op0 = captures[0];
    6483            0 :                             tree res_op1;
    6484            0 :                             {
    6485            0 :                               tree _o1[1], _r1;
    6486            0 :                               {
    6487            0 :                                 tree _o2[2], _r2;
    6488            0 :                                 _o2[0] = captures[4];
    6489            0 :                                 _o2[1] = captures[3];
    6490            0 :                                 _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    6491            0 :                                 _o1[0] = _r2;
    6492              :                               }
    6493            0 :                               _r1 = maybe_build_call_expr_loc (loc, CFN_SQRT, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6494            0 :                               if (!_r1)
    6495            0 :                                 goto next_after_fail1619;
    6496            0 :                               res_op1 = _r1;
    6497              :                             }
    6498            0 :                             tree _r;
    6499            0 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6500            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
    6501            0 :                             return _r;
    6502              :                           }
    6503            0 : next_after_fail1619:;
    6504              :                         }
    6505              :                     }
    6506            0 :                     break;
    6507              :                   }
    6508              :                 default:;
    6509              :                 }
    6510              :             }
    6511              :           break;
    6512            0 :         case CFN_EXP10:
    6513            0 :           if (call_expr_nargs (_p1) == 1)
    6514              :     {
    6515            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6516            0 :               {
    6517            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6518            0 :                 if (flag_unsafe_math_optimizations
    6519              : )
    6520              :                   {
    6521            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1620;
    6522            0 :                     {
    6523            0 :                       tree res_op0;
    6524            0 :                       res_op0 = captures[0];
    6525            0 :                       tree res_op1;
    6526            0 :                       {
    6527            0 :                         tree _o1[1], _r1;
    6528            0 :                         {
    6529            0 :                           tree _o2[1], _r2;
    6530            0 :                           _o2[0] = captures[2];
    6531            0 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6532            0 :                           _o1[0] = _r2;
    6533              :                         }
    6534            0 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_EXP10, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6535            0 :                         if (!_r1)
    6536            0 :                           goto next_after_fail1620;
    6537            0 :                         res_op1 = _r1;
    6538              :                       }
    6539            0 :                       tree _r;
    6540            0 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6541            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6542            0 :                       return _r;
    6543              :                     }
    6544            0 : next_after_fail1620:;
    6545              :                   }
    6546              :               }
    6547              :             }
    6548              :           break;
    6549            0 :         case CFN_BUILT_IN_CBRTF:
    6550            0 :           if (call_expr_nargs (_p1) == 1)
    6551              :     {
    6552            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6553            0 :               switch (TREE_CODE (_q30))
    6554              :                 {
    6555            0 :                 case RDIV_EXPR:
    6556            0 :                   {
    6557            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    6558            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    6559            0 :                     {
    6560            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
    6561            0 :                       if (flag_unsafe_math_optimizations
    6562              : )
    6563              :                         {
    6564            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1621;
    6565            0 :                           {
    6566            0 :                             tree res_op0;
    6567            0 :                             res_op0 = captures[0];
    6568            0 :                             tree res_op1;
    6569            0 :                             {
    6570            0 :                               tree _o1[1], _r1;
    6571            0 :                               {
    6572            0 :                                 tree _o2[2], _r2;
    6573            0 :                                 _o2[0] = captures[4];
    6574            0 :                                 _o2[1] = captures[3];
    6575            0 :                                 _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    6576            0 :                                 _o1[0] = _r2;
    6577              :                               }
    6578            0 :                               _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6579            0 :                               if (!_r1)
    6580            0 :                                 goto next_after_fail1621;
    6581            0 :                               res_op1 = _r1;
    6582              :                             }
    6583            0 :                             tree _r;
    6584            0 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6585            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
    6586            0 :                             return _r;
    6587              :                           }
    6588            0 : next_after_fail1621:;
    6589              :                         }
    6590              :                     }
    6591            0 :                     break;
    6592              :                   }
    6593              :                 default:;
    6594              :                 }
    6595              :             }
    6596              :           break;
    6597            0 :         case CFN_BUILT_IN_CBRTL:
    6598            0 :           if (call_expr_nargs (_p1) == 1)
    6599              :     {
    6600            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6601            0 :               switch (TREE_CODE (_q30))
    6602              :                 {
    6603            0 :                 case RDIV_EXPR:
    6604            0 :                   {
    6605            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    6606            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    6607            0 :                     {
    6608            0 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q40, _q41 };
    6609            0 :                       if (flag_unsafe_math_optimizations
    6610              : )
    6611              :                         {
    6612            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1622;
    6613            0 :                           {
    6614            0 :                             tree res_op0;
    6615            0 :                             res_op0 = captures[0];
    6616            0 :                             tree res_op1;
    6617            0 :                             {
    6618            0 :                               tree _o1[1], _r1;
    6619            0 :                               {
    6620            0 :                                 tree _o2[2], _r2;
    6621            0 :                                 _o2[0] = captures[4];
    6622            0 :                                 _o2[1] = captures[3];
    6623            0 :                                 _r2 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    6624            0 :                                 _o1[0] = _r2;
    6625              :                               }
    6626            0 :                               _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6627            0 :                               if (!_r1)
    6628            0 :                                 goto next_after_fail1622;
    6629            0 :                               res_op1 = _r1;
    6630              :                             }
    6631            0 :                             tree _r;
    6632            0 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6633            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 997, __FILE__, __LINE__, true);
    6634            0 :                             return _r;
    6635              :                           }
    6636            0 : next_after_fail1622:;
    6637              :                         }
    6638              :                     }
    6639            0 :                     break;
    6640              :                   }
    6641              :                 default:;
    6642              :                 }
    6643              :             }
    6644              :           break;
    6645           24 :         case CFN_BUILT_IN_EXP10:
    6646           24 :           if (call_expr_nargs (_p1) == 1)
    6647              :     {
    6648           24 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6649           24 :               {
    6650           24 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6651           24 :                 if (flag_unsafe_math_optimizations
    6652              : )
    6653              :                   {
    6654           24 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1623;
    6655           24 :                     {
    6656           24 :                       tree res_op0;
    6657           24 :                       res_op0 = captures[0];
    6658           24 :                       tree res_op1;
    6659           24 :                       {
    6660           24 :                         tree _o1[1], _r1;
    6661           24 :                         {
    6662           24 :                           tree _o2[1], _r2;
    6663           24 :                           _o2[0] = captures[2];
    6664           24 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6665           24 :                           _o1[0] = _r2;
    6666              :                         }
    6667           24 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6668           24 :                         if (!_r1)
    6669            0 :                           goto next_after_fail1623;
    6670           24 :                         res_op1 = _r1;
    6671              :                       }
    6672           24 :                       tree _r;
    6673           24 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6674           24 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6675           24 :                       return _r;
    6676              :                     }
    6677            0 : next_after_fail1623:;
    6678              :                   }
    6679              :               }
    6680              :             }
    6681              :           break;
    6682           24 :         case CFN_BUILT_IN_EXP2F:
    6683           24 :           if (call_expr_nargs (_p1) == 1)
    6684              :     {
    6685           24 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6686           24 :               {
    6687           24 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6688           24 :                 if (flag_unsafe_math_optimizations
    6689              : )
    6690              :                   {
    6691           24 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1624;
    6692           24 :                     {
    6693           24 :                       tree res_op0;
    6694           24 :                       res_op0 = captures[0];
    6695           24 :                       tree res_op1;
    6696           24 :                       {
    6697           24 :                         tree _o1[1], _r1;
    6698           24 :                         {
    6699           24 :                           tree _o2[1], _r2;
    6700           24 :                           _o2[0] = captures[2];
    6701           24 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6702           24 :                           _o1[0] = _r2;
    6703              :                         }
    6704           24 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6705           24 :                         if (!_r1)
    6706            0 :                           goto next_after_fail1624;
    6707           24 :                         res_op1 = _r1;
    6708              :                       }
    6709           24 :                       tree _r;
    6710           24 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6711           24 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6712           24 :                       return _r;
    6713              :                     }
    6714            0 : next_after_fail1624:;
    6715              :                   }
    6716              :               }
    6717              :             }
    6718              :           break;
    6719           24 :         case CFN_BUILT_IN_EXP2L:
    6720           24 :           if (call_expr_nargs (_p1) == 1)
    6721              :     {
    6722           24 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6723           24 :               {
    6724           24 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6725           24 :                 if (flag_unsafe_math_optimizations
    6726              : )
    6727              :                   {
    6728           24 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1625;
    6729           24 :                     {
    6730           24 :                       tree res_op0;
    6731           24 :                       res_op0 = captures[0];
    6732           24 :                       tree res_op1;
    6733           24 :                       {
    6734           24 :                         tree _o1[1], _r1;
    6735           24 :                         {
    6736           24 :                           tree _o2[1], _r2;
    6737           24 :                           _o2[0] = captures[2];
    6738           24 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6739           24 :                           _o1[0] = _r2;
    6740              :                         }
    6741           24 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6742           24 :                         if (!_r1)
    6743            0 :                           goto next_after_fail1625;
    6744           24 :                         res_op1 = _r1;
    6745              :                       }
    6746           24 :                       tree _r;
    6747           24 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6748           24 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6749           24 :                       return _r;
    6750              :                     }
    6751            0 : next_after_fail1625:;
    6752              :                   }
    6753              :               }
    6754              :             }
    6755              :           break;
    6756           24 :         case CFN_BUILT_IN_POW10:
    6757           24 :           if (call_expr_nargs (_p1) == 1)
    6758              :     {
    6759           24 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    6760           24 :               {
    6761           24 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6762           24 :                 if (flag_unsafe_math_optimizations
    6763              : )
    6764              :                   {
    6765           24 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1626;
    6766           24 :                     {
    6767           24 :                       tree res_op0;
    6768           24 :                       res_op0 = captures[0];
    6769           24 :                       tree res_op1;
    6770           24 :                       {
    6771           24 :                         tree _o1[1], _r1;
    6772           24 :                         {
    6773           24 :                           tree _o2[1], _r2;
    6774           24 :                           _o2[0] = captures[2];
    6775           24 :                           _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    6776           24 :                           _o1[0] = _r2;
    6777              :                         }
    6778           24 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, TREE_TYPE (_o1[0]), 1, _o1[0]);
    6779           24 :                         if (!_r1)
    6780           24 :                           goto next_after_fail1626;
    6781            0 :                         res_op1 = _r1;
    6782              :                       }
    6783            0 :                       tree _r;
    6784            0 :                       _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6785            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 998, __FILE__, __LINE__, true);
    6786            0 :                       return _r;
    6787              :                     }
    6788           24 : next_after_fail1626:;
    6789              :                   }
    6790              :               }
    6791              :             }
    6792              :           break;
    6793              :         default:;
    6794              :         }
    6795              :       break;
    6796      5855413 :     default:;
    6797              :     }
    6798      5855413 :   switch (TREE_CODE (_p0))
    6799              :     {
    6800       188747 :     case CALL_EXPR:
    6801       188747 :       switch (get_call_combined_fn (_p0))
    6802              :         {
    6803            1 :         case CFN_BUILT_IN_SINHF:
    6804            1 :           if (call_expr_nargs (_p0) == 1)
    6805              :     {
    6806            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6807            1 :               switch (TREE_CODE (_p1))
    6808              :                 {
    6809            1 :                 case CALL_EXPR:
    6810            1 :                   switch (get_call_combined_fn (_p1))
    6811              :                     {
    6812            1 :                     case CFN_BUILT_IN_COSHF:
    6813            1 :                       if (call_expr_nargs (_p1) == 1)
    6814              :     {
    6815            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6816            1 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    6817              :                             {
    6818            1 :                               {
    6819            1 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6820            1 :                                 tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF, CFN_BUILT_IN_TANHF);
    6821            1 :                                 if (res) return res;
    6822              :                               }
    6823              :                             }
    6824              :                         }
    6825              :                       break;
    6826              :                     default:;
    6827              :                     }
    6828              :                   break;
    6829              :                 default:;
    6830              :                 }
    6831              :             }
    6832              :           break;
    6833            1 :         case CFN_BUILT_IN_SINHL:
    6834            1 :           if (call_expr_nargs (_p0) == 1)
    6835              :     {
    6836            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6837            1 :               switch (TREE_CODE (_p1))
    6838              :                 {
    6839            1 :                 case CALL_EXPR:
    6840            1 :                   switch (get_call_combined_fn (_p1))
    6841              :                     {
    6842            1 :                     case CFN_BUILT_IN_COSHL:
    6843            1 :                       if (call_expr_nargs (_p1) == 1)
    6844              :     {
    6845            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6846            1 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    6847              :                             {
    6848            1 :                               {
    6849            1 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6850            1 :                                 tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL, CFN_BUILT_IN_TANHL);
    6851            1 :                                 if (res) return res;
    6852              :                               }
    6853              :                             }
    6854              :                         }
    6855              :                       break;
    6856              :                     default:;
    6857              :                     }
    6858              :                   break;
    6859              :                 default:;
    6860              :                 }
    6861              :             }
    6862              :           break;
    6863            1 :         case CFN_BUILT_IN_TANHF:
    6864            1 :           if (call_expr_nargs (_p0) == 1)
    6865              :     {
    6866            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6867            1 :               switch (TREE_CODE (_p1))
    6868              :                 {
    6869            1 :                 case CALL_EXPR:
    6870            1 :                   switch (get_call_combined_fn (_p1))
    6871              :                     {
    6872            1 :                     case CFN_BUILT_IN_SINHF:
    6873            1 :                       if (call_expr_nargs (_p1) == 1)
    6874              :     {
    6875            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6876            1 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    6877              :                             {
    6878            1 :                               {
    6879            1 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6880            1 :                                 tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANHF, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_COSHF);
    6881            1 :                                 if (res) return res;
    6882              :                               }
    6883              :                             }
    6884              :                         }
    6885              :                       break;
    6886              :                     default:;
    6887              :                     }
    6888              :                   break;
    6889              :                 default:;
    6890              :                 }
    6891              :             }
    6892              :           break;
    6893            1 :         case CFN_BUILT_IN_TANHL:
    6894            1 :           if (call_expr_nargs (_p0) == 1)
    6895              :     {
    6896            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6897            1 :               switch (TREE_CODE (_p1))
    6898              :                 {
    6899            1 :                 case CALL_EXPR:
    6900            1 :                   switch (get_call_combined_fn (_p1))
    6901              :                     {
    6902            1 :                     case CFN_BUILT_IN_SINHL:
    6903            1 :                       if (call_expr_nargs (_p1) == 1)
    6904              :     {
    6905            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6906            1 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    6907              :                             {
    6908            1 :                               {
    6909            1 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6910            1 :                                 tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANHL, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_COSHL);
    6911            1 :                                 if (res) return res;
    6912              :                               }
    6913              :                             }
    6914              :                         }
    6915              :                       break;
    6916              :                     default:;
    6917              :                     }
    6918              :                   break;
    6919              :                 default:;
    6920              :                 }
    6921              :             }
    6922              :           break;
    6923            2 :         case CFN_BUILT_IN_COS:
    6924            2 :           if (call_expr_nargs (_p0) == 1)
    6925              :     {
    6926            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6927            2 :               switch (TREE_CODE (_p1))
    6928              :                 {
    6929            2 :                 case CALL_EXPR:
    6930            2 :                   switch (get_call_combined_fn (_p1))
    6931              :                     {
    6932            2 :                     case CFN_BUILT_IN_SIN:
    6933            2 :                       if (call_expr_nargs (_p1) == 1)
    6934              :     {
    6935            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6936            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    6937              :                             {
    6938            2 :                               {
    6939            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6940            2 :                                 tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN);
    6941            2 :                                 if (res) return res;
    6942              :                               }
    6943              :                             }
    6944              :                         }
    6945              :                       break;
    6946              :                     default:;
    6947              :                     }
    6948              :                   break;
    6949              :                 default:;
    6950              :                 }
    6951              :             }
    6952              :           break;
    6953            4 :         case CFN_BUILT_IN_POW:
    6954            4 :           if (call_expr_nargs (_p0) == 2)
    6955              :     {
    6956            4 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6957            4 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6958            4 :               switch (TREE_CODE (_q21))
    6959              :                 {
    6960            4 :                 case REAL_CST:
    6961            4 :                   {
    6962            4 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6963              :                       {
    6964            4 :                         {
    6965            4 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6966            4 :                           tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
    6967            4 :                           if (res) return res;
    6968              :                         }
    6969              :                       }
    6970              :                     break;
    6971              :                   }
    6972              :                 default:;
    6973              :                 }
    6974              :             }
    6975              :           break;
    6976           86 :         case CFN_BUILT_IN_SIN:
    6977           86 :           if (call_expr_nargs (_p0) == 1)
    6978              :     {
    6979           86 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6980           86 :               switch (TREE_CODE (_p1))
    6981              :                 {
    6982            4 :                 case CALL_EXPR:
    6983            4 :                   switch (get_call_combined_fn (_p1))
    6984              :                     {
    6985            2 :                     case CFN_BUILT_IN_COS:
    6986            2 :                       if (call_expr_nargs (_p1) == 1)
    6987              :     {
    6988            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6989            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    6990              :                             {
    6991            2 :                               {
    6992            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6993            2 :                                 tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS, CFN_BUILT_IN_TAN);
    6994            2 :                                 if (res) return res;
    6995              :                               }
    6996              :                             }
    6997              :                         }
    6998              :                       break;
    6999            2 :                     case CFN_BUILT_IN_TAN:
    7000            2 :                       if (call_expr_nargs (_p1) == 1)
    7001              :     {
    7002            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7003            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7004              :                             {
    7005            2 :                               {
    7006            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7007            2 :                                 tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS);
    7008            2 :                                 if (res) return res;
    7009              :                               }
    7010              :                             }
    7011              :                         }
    7012              :                       break;
    7013              :                     default:;
    7014              :                     }
    7015              :                   break;
    7016              :                 default:;
    7017              :                 }
    7018              :             }
    7019              :           break;
    7020            2 :         case CFN_BUILT_IN_TAN:
    7021            2 :           if (call_expr_nargs (_p0) == 1)
    7022              :     {
    7023            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7024            2 :               switch (TREE_CODE (_p1))
    7025              :                 {
    7026            2 :                 case CALL_EXPR:
    7027            2 :                   switch (get_call_combined_fn (_p1))
    7028              :                     {
    7029            2 :                     case CFN_BUILT_IN_SIN:
    7030            2 :                       if (call_expr_nargs (_p1) == 1)
    7031              :     {
    7032            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7033            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7034              :                             {
    7035            2 :                               {
    7036            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7037            2 :                                 tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS);
    7038            2 :                                 if (res) return res;
    7039              :                               }
    7040              :                             }
    7041              :                         }
    7042              :                       break;
    7043              :                     default:;
    7044              :                     }
    7045              :                   break;
    7046              :                 default:;
    7047              :                 }
    7048              :             }
    7049              :           break;
    7050            2 :         case CFN_BUILT_IN_COSF:
    7051            2 :           if (call_expr_nargs (_p0) == 1)
    7052              :     {
    7053            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7054            2 :               switch (TREE_CODE (_p1))
    7055              :                 {
    7056            2 :                 case CALL_EXPR:
    7057            2 :                   switch (get_call_combined_fn (_p1))
    7058              :                     {
    7059            2 :                     case CFN_BUILT_IN_SINF:
    7060            2 :                       if (call_expr_nargs (_p1) == 1)
    7061              :     {
    7062            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7063            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7064              :                             {
    7065            2 :                               {
    7066            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7067            2 :                                 tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF);
    7068            2 :                                 if (res) return res;
    7069              :                               }
    7070              :                             }
    7071              :                         }
    7072              :                       break;
    7073              :                     default:;
    7074              :                     }
    7075              :                   break;
    7076              :                 default:;
    7077              :                 }
    7078              :             }
    7079              :           break;
    7080            2 :         case CFN_BUILT_IN_COSL:
    7081            2 :           if (call_expr_nargs (_p0) == 1)
    7082              :     {
    7083            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7084            2 :               switch (TREE_CODE (_p1))
    7085              :                 {
    7086            2 :                 case CALL_EXPR:
    7087            2 :                   switch (get_call_combined_fn (_p1))
    7088              :                     {
    7089            2 :                     case CFN_BUILT_IN_SINL:
    7090            2 :                       if (call_expr_nargs (_p1) == 1)
    7091              :     {
    7092            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7093            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7094              :                             {
    7095            2 :                               {
    7096            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7097            2 :                                 tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL);
    7098            2 :                                 if (res) return res;
    7099              :                               }
    7100              :                             }
    7101              :                         }
    7102              :                       break;
    7103              :                     default:;
    7104              :                     }
    7105              :                   break;
    7106              :                 default:;
    7107              :                 }
    7108              :             }
    7109              :           break;
    7110            1 :         case CFN_BUILT_IN_POWF:
    7111            1 :           if (call_expr_nargs (_p0) == 2)
    7112              :     {
    7113            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7114            1 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    7115            1 :               switch (TREE_CODE (_q21))
    7116              :                 {
    7117            1 :                 case REAL_CST:
    7118            1 :                   {
    7119            1 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7120              :                       {
    7121            0 :                         {
    7122            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7123            0 :                           tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
    7124            0 :                           if (res) return res;
    7125              :                         }
    7126              :                       }
    7127              :                     break;
    7128              :                   }
    7129              :                 default:;
    7130              :                 }
    7131              :             }
    7132              :           break;
    7133            0 :         case CFN_BUILT_IN_POWL:
    7134            0 :           if (call_expr_nargs (_p0) == 2)
    7135              :     {
    7136            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7137            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    7138            0 :               switch (TREE_CODE (_q21))
    7139              :                 {
    7140            0 :                 case REAL_CST:
    7141            0 :                   {
    7142            0 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7143              :                       {
    7144            0 :                         {
    7145            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7146            0 :                           tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
    7147            0 :                           if (res) return res;
    7148              :                         }
    7149              :                       }
    7150              :                     break;
    7151              :                   }
    7152              :                 default:;
    7153              :                 }
    7154              :             }
    7155              :           break;
    7156            4 :         case CFN_BUILT_IN_SINF:
    7157            4 :           if (call_expr_nargs (_p0) == 1)
    7158              :     {
    7159            4 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7160            4 :               switch (TREE_CODE (_p1))
    7161              :                 {
    7162            4 :                 case CALL_EXPR:
    7163            4 :                   switch (get_call_combined_fn (_p1))
    7164              :                     {
    7165            2 :                     case CFN_BUILT_IN_COSF:
    7166            2 :                       if (call_expr_nargs (_p1) == 1)
    7167              :     {
    7168            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7169            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7170              :                             {
    7171            2 :                               {
    7172            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7173            2 :                                 tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_TANF);
    7174            2 :                                 if (res) return res;
    7175              :                               }
    7176              :                             }
    7177              :                         }
    7178              :                       break;
    7179            2 :                     case CFN_BUILT_IN_TANF:
    7180            2 :                       if (call_expr_nargs (_p1) == 1)
    7181              :     {
    7182            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7183            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7184              :                             {
    7185            2 :                               {
    7186            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7187            2 :                                 tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF);
    7188            2 :                                 if (res) return res;
    7189              :                               }
    7190              :                             }
    7191              :                         }
    7192              :                       break;
    7193              :                     default:;
    7194              :                     }
    7195              :                   break;
    7196              :                 default:;
    7197              :                 }
    7198              :             }
    7199              :           break;
    7200          135 :         case CFN_BUILT_IN_SINH:
    7201          135 :           if (call_expr_nargs (_p0) == 1)
    7202              :     {
    7203          135 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7204          135 :               switch (TREE_CODE (_p1))
    7205              :                 {
    7206            3 :                 case CALL_EXPR:
    7207            3 :                   switch (get_call_combined_fn (_p1))
    7208              :                     {
    7209            3 :                     case CFN_BUILT_IN_COSH:
    7210            3 :                       if (call_expr_nargs (_p1) == 1)
    7211              :     {
    7212            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7213            3 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7214              :                             {
    7215            3 :                               {
    7216            3 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7217            3 :                                 tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH, CFN_BUILT_IN_TANH);
    7218            3 :                                 if (res) return res;
    7219              :                               }
    7220              :                             }
    7221              :                         }
    7222              :                       break;
    7223              :                     default:;
    7224              :                     }
    7225              :                   break;
    7226              :                 default:;
    7227              :                 }
    7228              :             }
    7229              :           break;
    7230            4 :         case CFN_BUILT_IN_SINL:
    7231            4 :           if (call_expr_nargs (_p0) == 1)
    7232              :     {
    7233            4 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7234            4 :               switch (TREE_CODE (_p1))
    7235              :                 {
    7236            4 :                 case CALL_EXPR:
    7237            4 :                   switch (get_call_combined_fn (_p1))
    7238              :                     {
    7239            2 :                     case CFN_BUILT_IN_COSL:
    7240            2 :                       if (call_expr_nargs (_p1) == 1)
    7241              :     {
    7242            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7243            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7244              :                             {
    7245            2 :                               {
    7246            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7247            2 :                                 tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_TANL);
    7248            2 :                                 if (res) return res;
    7249              :                               }
    7250              :                             }
    7251              :                         }
    7252              :                       break;
    7253            2 :                     case CFN_BUILT_IN_TANL:
    7254            2 :                       if (call_expr_nargs (_p1) == 1)
    7255              :     {
    7256            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7257            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7258              :                             {
    7259            2 :                               {
    7260            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7261            2 :                                 tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL);
    7262            2 :                                 if (res) return res;
    7263              :                               }
    7264              :                             }
    7265              :                         }
    7266              :                       break;
    7267              :                     default:;
    7268              :                     }
    7269              :                   break;
    7270              :                 default:;
    7271              :                 }
    7272              :             }
    7273              :           break;
    7274            2 :         case CFN_BUILT_IN_TANF:
    7275            2 :           if (call_expr_nargs (_p0) == 1)
    7276              :     {
    7277            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7278            2 :               switch (TREE_CODE (_p1))
    7279              :                 {
    7280            2 :                 case CALL_EXPR:
    7281            2 :                   switch (get_call_combined_fn (_p1))
    7282              :                     {
    7283            2 :                     case CFN_BUILT_IN_SINF:
    7284            2 :                       if (call_expr_nargs (_p1) == 1)
    7285              :     {
    7286            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7287            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7288              :                             {
    7289            2 :                               {
    7290            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7291            2 :                                 tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF);
    7292            2 :                                 if (res) return res;
    7293              :                               }
    7294              :                             }
    7295              :                         }
    7296              :                       break;
    7297              :                     default:;
    7298              :                     }
    7299              :                   break;
    7300              :                 default:;
    7301              :                 }
    7302              :             }
    7303              :           break;
    7304            1 :         case CFN_BUILT_IN_TANH:
    7305            1 :           if (call_expr_nargs (_p0) == 1)
    7306              :     {
    7307            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7308            1 :               switch (TREE_CODE (_p1))
    7309              :                 {
    7310            1 :                 case CALL_EXPR:
    7311            1 :                   switch (get_call_combined_fn (_p1))
    7312              :                     {
    7313            1 :                     case CFN_BUILT_IN_SINH:
    7314            1 :                       if (call_expr_nargs (_p1) == 1)
    7315              :     {
    7316            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7317            1 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7318              :                             {
    7319            1 :                               {
    7320            1 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7321            1 :                                 tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANH, CFN_BUILT_IN_SINH, CFN_BUILT_IN_COSH);
    7322            1 :                                 if (res) return res;
    7323              :                               }
    7324              :                             }
    7325              :                         }
    7326              :                       break;
    7327              :                     default:;
    7328              :                     }
    7329              :                   break;
    7330              :                 default:;
    7331              :                 }
    7332              :             }
    7333              :           break;
    7334            2 :         case CFN_BUILT_IN_TANL:
    7335            2 :           if (call_expr_nargs (_p0) == 1)
    7336              :     {
    7337            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7338            2 :               switch (TREE_CODE (_p1))
    7339              :                 {
    7340            2 :                 case CALL_EXPR:
    7341            2 :                   switch (get_call_combined_fn (_p1))
    7342              :                     {
    7343            2 :                     case CFN_BUILT_IN_SINL:
    7344            2 :                       if (call_expr_nargs (_p1) == 1)
    7345              :     {
    7346            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7347            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7348              :                             {
    7349            2 :                               {
    7350            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7351            2 :                                 tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL);
    7352            2 :                                 if (res) return res;
    7353              :                               }
    7354              :                             }
    7355              :                         }
    7356              :                       break;
    7357              :                     default:;
    7358              :                     }
    7359              :                   break;
    7360              :                 default:;
    7361              :                 }
    7362              :             }
    7363              :           break;
    7364            0 :         case CFN_COS:
    7365            0 :           if (call_expr_nargs (_p0) == 1)
    7366              :     {
    7367            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7368            0 :               switch (TREE_CODE (_p1))
    7369              :                 {
    7370            0 :                 case CALL_EXPR:
    7371            0 :                   switch (get_call_combined_fn (_p1))
    7372              :                     {
    7373            0 :                     case CFN_SIN:
    7374            0 :                       if (call_expr_nargs (_p1) == 1)
    7375              :     {
    7376            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7377            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7378              :                             {
    7379            0 :                               {
    7380            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7381            0 :                                 tree res = generic_simplify_336 (loc, type, _p0, _p1, captures, CFN_COS, CFN_SIN, CFN_TAN);
    7382            0 :                                 if (res) return res;
    7383              :                               }
    7384              :                             }
    7385              :                         }
    7386              :                       break;
    7387              :                     default:;
    7388              :                     }
    7389              :                   break;
    7390              :                 default:;
    7391              :                 }
    7392              :             }
    7393              :           break;
    7394            0 :         case CFN_POW:
    7395            0 :           if (call_expr_nargs (_p0) == 2)
    7396              :     {
    7397            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7398            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    7399            0 :               switch (TREE_CODE (_q21))
    7400              :                 {
    7401            0 :                 case REAL_CST:
    7402            0 :                   {
    7403            0 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7404              :                       {
    7405            0 :                         {
    7406            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7407            0 :                           tree res = generic_simplify_338 (loc, type, _p0, _p1, captures, CFN_POW);
    7408            0 :                           if (res) return res;
    7409              :                         }
    7410              :                       }
    7411              :                     break;
    7412              :                   }
    7413              :                 default:;
    7414              :                 }
    7415              :             }
    7416              :           break;
    7417            0 :         case CFN_SIN:
    7418            0 :           if (call_expr_nargs (_p0) == 1)
    7419              :     {
    7420            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7421            0 :               switch (TREE_CODE (_p1))
    7422              :                 {
    7423            0 :                 case CALL_EXPR:
    7424            0 :                   switch (get_call_combined_fn (_p1))
    7425              :                     {
    7426            0 :                     case CFN_COS:
    7427            0 :                       if (call_expr_nargs (_p1) == 1)
    7428              :     {
    7429            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7430            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7431              :                             {
    7432            0 :                               {
    7433            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7434            0 :                                 tree res = generic_simplify_332 (loc, type, _p0, _p1, captures, CFN_SIN, CFN_COS, CFN_TAN);
    7435            0 :                                 if (res) return res;
    7436              :                               }
    7437              :                             }
    7438              :                         }
    7439              :                       break;
    7440            0 :                     case CFN_TAN:
    7441            0 :                       if (call_expr_nargs (_p1) == 1)
    7442              :     {
    7443            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7444            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7445              :                             {
    7446            0 :                               {
    7447            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7448            0 :                                 tree res = generic_simplify_333 (loc, type, _p0, _p1, captures, CFN_SIN, CFN_TAN, CFN_COS);
    7449            0 :                                 if (res) return res;
    7450              :                               }
    7451              :                             }
    7452              :                         }
    7453              :                       break;
    7454              :                     default:;
    7455              :                     }
    7456              :                   break;
    7457              :                 default:;
    7458              :                 }
    7459              :             }
    7460              :           break;
    7461            0 :         case CFN_TAN:
    7462            0 :           if (call_expr_nargs (_p0) == 1)
    7463              :     {
    7464            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7465            0 :               switch (TREE_CODE (_p1))
    7466              :                 {
    7467            0 :                 case CALL_EXPR:
    7468            0 :                   switch (get_call_combined_fn (_p1))
    7469              :                     {
    7470            0 :                     case CFN_SIN:
    7471            0 :                       if (call_expr_nargs (_p1) == 1)
    7472              :     {
    7473            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7474            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7475              :                             {
    7476            0 :                               {
    7477            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7478            0 :                                 tree res = generic_simplify_337 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_SIN, CFN_COS);
    7479            0 :                                 if (res) return res;
    7480              :                               }
    7481              :                             }
    7482              :                         }
    7483              :                       break;
    7484              :                     default:;
    7485              :                     }
    7486              :                   break;
    7487              :                 default:;
    7488              :                 }
    7489              :             }
    7490              :           break;
    7491            0 :         case CFN_SINH:
    7492            0 :           if (call_expr_nargs (_p0) == 1)
    7493              :     {
    7494            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7495            0 :               switch (TREE_CODE (_p1))
    7496              :                 {
    7497            0 :                 case CALL_EXPR:
    7498            0 :                   switch (get_call_combined_fn (_p1))
    7499              :                     {
    7500            0 :                     case CFN_COSH:
    7501            0 :                       if (call_expr_nargs (_p1) == 1)
    7502              :     {
    7503            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7504            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7505              :                             {
    7506            0 :                               {
    7507            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7508            0 :                                 tree res = generic_simplify_334 (loc, type, _p0, _p1, captures, CFN_SINH, CFN_COSH, CFN_TANH);
    7509            0 :                                 if (res) return res;
    7510              :                               }
    7511              :                             }
    7512              :                         }
    7513              :                       break;
    7514              :                     default:;
    7515              :                     }
    7516              :                   break;
    7517              :                 default:;
    7518              :                 }
    7519              :             }
    7520              :           break;
    7521            0 :         case CFN_TANH:
    7522            0 :           if (call_expr_nargs (_p0) == 1)
    7523              :     {
    7524            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7525            0 :               switch (TREE_CODE (_p1))
    7526              :                 {
    7527            0 :                 case CALL_EXPR:
    7528            0 :                   switch (get_call_combined_fn (_p1))
    7529              :                     {
    7530            0 :                     case CFN_SINH:
    7531            0 :                       if (call_expr_nargs (_p1) == 1)
    7532              :     {
    7533            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7534            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    7535              :                             {
    7536            0 :                               {
    7537            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7538            0 :                                 tree res = generic_simplify_335 (loc, type, _p0, _p1, captures, CFN_TANH, CFN_SINH, CFN_COSH);
    7539            0 :                                 if (res) return res;
    7540              :                               }
    7541              :                             }
    7542              :                         }
    7543              :                       break;
    7544              :                     default:;
    7545              :                     }
    7546              :                   break;
    7547              :                 default:;
    7548              :                 }
    7549              :             }
    7550              :           break;
    7551              :         default:;
    7552              :         }
    7553              :       break;
    7554      5855379 :     default:;
    7555              :     }
    7556      5855379 :   switch (TREE_CODE (_p1))
    7557              :     {
    7558       785025 :     case CALL_EXPR:
    7559       785025 :       switch (get_call_combined_fn (_p1))
    7560              :         {
    7561           22 :         case CFN_BUILT_IN_POW:
    7562           22 :           if (call_expr_nargs (_p1) == 2)
    7563              :     {
    7564           22 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7565           22 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    7566           22 :               {
    7567           22 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
    7568           22 :                 tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
    7569           22 :                 if (res) return res;
    7570              :               }
    7571              :             }
    7572              :           break;
    7573            2 :         case CFN_BUILT_IN_POWF:
    7574            2 :           if (call_expr_nargs (_p1) == 2)
    7575              :     {
    7576            2 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7577            2 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    7578            2 :               {
    7579            2 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
    7580            2 :                 tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
    7581            2 :                 if (res) return res;
    7582              :               }
    7583              :             }
    7584              :           break;
    7585            0 :         case CFN_BUILT_IN_POWL:
    7586            0 :           if (call_expr_nargs (_p1) == 2)
    7587              :     {
    7588            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7589            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    7590            0 :               {
    7591            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
    7592            0 :                 tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
    7593            0 :                 if (res) return res;
    7594              :               }
    7595              :             }
    7596              :           break;
    7597            0 :         case CFN_POW:
    7598            0 :           if (call_expr_nargs (_p1) == 2)
    7599              :     {
    7600            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7601            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    7602            0 :               {
    7603            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
    7604            0 :                 tree res = generic_simplify_339 (loc, type, _p0, _p1, captures, CFN_POW);
    7605            0 :                 if (res) return res;
    7606              :               }
    7607              :             }
    7608              :           break;
    7609              :         default:;
    7610              :         }
    7611              :       break;
    7612              :     default:;
    7613              :     }
    7614              :   return NULL_TREE;
    7615              : }
    7616              : 
    7617              : tree
    7618      6569041 : generic_simplify_GE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    7619              : {
    7620      6569041 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    7621      6569041 :   switch (TREE_CODE (_p0))
    7622              :     {
    7623         2001 :     case RDIV_EXPR:
    7624         2001 :       {
    7625         2001 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7626         2001 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7627         2001 :         switch (TREE_CODE (_q20))
    7628              :           {
    7629           46 :           case REAL_CST:
    7630           46 :             {
    7631           46 :               if (real_zerop (_p1))
    7632              :                 {
    7633            2 :                   {
    7634            2 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7635            2 :                     tree res = generic_simplify_374 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    7636            2 :                     if (res) return res;
    7637              :                   }
    7638              :                 }
    7639              :               break;
    7640              :             }
    7641              :           default:;
    7642              :           }
    7643              :         break;
    7644              :       }
    7645         1208 :     case TRUNC_MOD_EXPR:
    7646         1208 :       {
    7647         1208 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7648         1208 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7649         1208 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    7650              :           {
    7651           26 :             {
    7652           26 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7653           26 :               tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, GE_EXPR);
    7654           26 :               if (res) return res;
    7655              :             }
    7656              :           }
    7657              :         break;
    7658              :       }
    7659        31369 :     case MULT_EXPR:
    7660        31369 :       {
    7661        31369 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7662        31369 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7663        31369 :         switch (TREE_CODE (_p1))
    7664              :           {
    7665         6873 :           case MULT_EXPR:
    7666         6873 :             {
    7667         6873 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7668         6873 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7669         6873 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7670              :                 {
    7671         4709 :                   {
    7672         4709 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7673         4709 :                     tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GE_EXPR);
    7674         4709 :                     if (res) return res;
    7675              :                   }
    7676              :                 }
    7677         2702 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7678              :                 {
    7679            0 :                   {
    7680            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    7681            0 :                     tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GE_EXPR);
    7682            0 :                     if (res) return res;
    7683              :                   }
    7684              :                 }
    7685         2702 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7686              :                 {
    7687            0 :                   {
    7688            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    7689            0 :                     tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GE_EXPR);
    7690            0 :                     if (res) return res;
    7691              :                   }
    7692              :                 }
    7693         2702 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7694              :                 {
    7695            1 :                   {
    7696            1 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    7697            1 :                     tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GE_EXPR);
    7698            1 :                     if (res) return res;
    7699              :                   }
    7700              :                 }
    7701              :               break;
    7702              :             }
    7703              :           default:;
    7704              :           }
    7705              :         break;
    7706              :       }
    7707       994281 :     CASE_CONVERT:
    7708       994281 :       {
    7709       994281 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7710       994281 :         switch (TREE_CODE (_q20))
    7711              :           {
    7712          157 :           case EXACT_DIV_EXPR:
    7713          157 :             {
    7714          157 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7715          157 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7716          157 :               switch (TREE_CODE (_q31))
    7717              :                 {
    7718          157 :                 case INTEGER_CST:
    7719          157 :                   {
    7720          157 :                     switch (TREE_CODE (_p1))
    7721              :                       {
    7722           43 :                       CASE_CONVERT:
    7723           43 :                         {
    7724           43 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    7725           43 :                           switch (TREE_CODE (_q60))
    7726              :                             {
    7727            0 :                             case EXACT_DIV_EXPR:
    7728            0 :                               {
    7729            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    7730            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    7731            0 :                                 if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    7732              :                                   {
    7733            0 :                                     {
    7734            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
    7735            0 :                                       tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, GE_EXPR);
    7736            0 :                                       if (res) return res;
    7737              :                                     }
    7738              :                                   }
    7739              :                                 break;
    7740              :                               }
    7741              :                             default:;
    7742              :                             }
    7743              :                           break;
    7744              :                         }
    7745              :                       default:;
    7746              :                       }
    7747              :                     break;
    7748              :                   }
    7749              :                 default:;
    7750              :                 }
    7751              :               break;
    7752              :             }
    7753              :           default:;
    7754              :           }
    7755              :         break;
    7756              :       }
    7757         8045 :     case EXACT_DIV_EXPR:
    7758         8045 :       {
    7759         8045 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7760         8045 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7761         8045 :         switch (TREE_CODE (_q21))
    7762              :           {
    7763         8045 :           case INTEGER_CST:
    7764         8045 :             {
    7765         8045 :               switch (TREE_CODE (_p1))
    7766              :                 {
    7767            0 :                 case EXACT_DIV_EXPR:
    7768            0 :                   {
    7769            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    7770            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    7771            0 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7772              :                       {
    7773            0 :                         {
    7774            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    7775            0 :                           tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, GE_EXPR);
    7776            0 :                           if (res) return res;
    7777              :                         }
    7778              :                       }
    7779              :                     break;
    7780              :                   }
    7781              :                 default:;
    7782              :                 }
    7783              :               break;
    7784              :             }
    7785              :           default:;
    7786              :           }
    7787              :         break;
    7788              :       }
    7789        41414 :     case TRUNC_DIV_EXPR:
    7790        41414 :       {
    7791        41414 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7792        41414 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7793        41414 :         switch (TREE_CODE (_q21))
    7794              :           {
    7795        40888 :           case INTEGER_CST:
    7796        40888 :             {
    7797        40888 :               switch (TREE_CODE (_p1))
    7798              :                 {
    7799        39977 :                 case INTEGER_CST:
    7800        39977 :                   {
    7801        39977 :                     {
    7802        39977 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    7803        39977 :                       tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, GE_EXPR);
    7804        39977 :                       if (res) return res;
    7805              :                     }
    7806            0 :                     break;
    7807              :                   }
    7808              :                 default:;
    7809              :                 }
    7810              :               break;
    7811              :             }
    7812              :           default:;
    7813              :           }
    7814              :         break;
    7815              :       }
    7816       792806 :     case PLUS_EXPR:
    7817       792806 :       {
    7818       792806 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7819       792806 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7820       792806 :         switch (TREE_CODE (_p1))
    7821              :           {
    7822        52247 :           case PLUS_EXPR:
    7823        52247 :             {
    7824        52247 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7825        52247 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7826        52247 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7827              :                 {
    7828         1430 :                   {
    7829         1430 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7830         1430 :                     tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GE_EXPR);
    7831         1430 :                     if (res) return res;
    7832              :                   }
    7833              :                 }
    7834        52247 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7835              :                 {
    7836           17 :                   {
    7837           17 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    7838           17 :                     tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GE_EXPR);
    7839           17 :                     if (res) return res;
    7840              :                   }
    7841              :                 }
    7842        52247 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7843              :                 {
    7844           16 :                   {
    7845           16 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    7846           16 :                     tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GE_EXPR);
    7847           16 :                     if (res) return res;
    7848              :                   }
    7849              :                 }
    7850        52247 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7851              :                 {
    7852          961 :                   {
    7853          961 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    7854          961 :                     tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, GE_EXPR);
    7855          961 :                     if (res) return res;
    7856              :                   }
    7857              :                 }
    7858              :               break;
    7859              :             }
    7860       792758 :           default:;
    7861              :           }
    7862       792758 :         switch (TREE_CODE (_q21))
    7863              :           {
    7864       680958 :           case INTEGER_CST:
    7865       680958 :             {
    7866       680958 :               switch (TREE_CODE (_p1))
    7867              :                 {
    7868        15124 :                 case PLUS_EXPR:
    7869        15124 :                   {
    7870        15124 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    7871        15124 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    7872        15124 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7873              :                       {
    7874         1426 :                         {
    7875         1426 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7876         1426 :                           tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, GE_EXPR);
    7877         1426 :                           if (res) return res;
    7878              :                         }
    7879              :                       }
    7880              :                     break;
    7881              :                   }
    7882              :                 default:;
    7883              :                 }
    7884              :               break;
    7885              :             }
    7886       792758 :           default:;
    7887              :           }
    7888       792758 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    7889              :           {
    7890        52977 :             {
    7891        52977 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7892        52977 :               tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GE_EXPR);
    7893        52977 :               if (res) return res;
    7894              :             }
    7895              :           }
    7896       759419 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7897              :           {
    7898        24574 :             {
    7899        24574 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    7900        24574 :               tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, GE_EXPR);
    7901        24574 :               if (res) return res;
    7902              :             }
    7903              :           }
    7904              :         break;
    7905              :       }
    7906       118068 :     case MINUS_EXPR:
    7907       118068 :       {
    7908       118068 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7909       118068 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7910       118068 :         switch (TREE_CODE (_p1))
    7911              :           {
    7912         1396 :           case MINUS_EXPR:
    7913         1396 :             {
    7914         1396 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7915         1396 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7916         1396 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7917              :                 {
    7918           14 :                   {
    7919           14 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7920           14 :                     tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GE_EXPR);
    7921           14 :                     if (res) return res;
    7922              :                   }
    7923              :                 }
    7924         1396 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7925              :                 {
    7926           22 :                   {
    7927           22 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    7928           22 :                     tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, GE_EXPR);
    7929           22 :                     if (res) return res;
    7930              :                   }
    7931              :                 }
    7932              :               break;
    7933              :             }
    7934              :           default:;
    7935              :           }
    7936              :         break;
    7937              :       }
    7938         2338 :     case POINTER_DIFF_EXPR:
    7939         2338 :       {
    7940         2338 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7941         2338 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7942         2338 :         switch (TREE_CODE (_p1))
    7943              :           {
    7944           32 :           case POINTER_DIFF_EXPR:
    7945           32 :             {
    7946           32 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7947           32 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7948           32 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7949              :                 {
    7950            0 :                   {
    7951            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    7952            0 :                     tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, GE_EXPR);
    7953            0 :                     if (res) return res;
    7954              :                   }
    7955              :                 }
    7956           32 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7957              :                 {
    7958            0 :                   {
    7959            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    7960            0 :                     tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, GE_EXPR);
    7961            0 :                     if (res) return res;
    7962              :                   }
    7963              :                 }
    7964              :               break;
    7965              :             }
    7966              :           default:;
    7967              :           }
    7968              :         break;
    7969              :       }
    7970      6487934 :     default:;
    7971              :     }
    7972      6487934 :   switch (TREE_CODE (_p1))
    7973              :     {
    7974        59019 :     case PLUS_EXPR:
    7975        59019 :       {
    7976        59019 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7977        59019 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7978        59019 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    7979              :           {
    7980            0 :             {
    7981            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7982            0 :               tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LE_EXPR);
    7983            0 :               if (res) return res;
    7984              :             }
    7985              :           }
    7986        59019 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    7987              :           {
    7988            0 :             {
    7989            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
    7990            0 :               tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LE_EXPR);
    7991            0 :               if (res) return res;
    7992              :             }
    7993              :           }
    7994              :         break;
    7995              :       }
    7996         2422 :     case MINUS_EXPR:
    7997         2422 :       {
    7998         2422 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7999         2422 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8000         2422 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    8001              :           {
    8002            0 :             {
    8003            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    8004            0 :               tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, GE_EXPR);
    8005            0 :               if (res) return res;
    8006              :             }
    8007              :           }
    8008              :         break;
    8009              :       }
    8010      6487934 :     default:;
    8011              :     }
    8012      6487934 :   switch (TREE_CODE (_p0))
    8013              :     {
    8014       118068 :     case MINUS_EXPR:
    8015       118068 :       {
    8016       118068 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8017       118068 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8018       118068 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    8019              :           {
    8020         2744 :             {
    8021         2744 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    8022         2744 :               tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, LE_EXPR);
    8023         2744 :               if (res) return res;
    8024              :             }
    8025              :           }
    8026              :         break;
    8027              :       }
    8028         1065 :     case BIT_IOR_EXPR:
    8029         1065 :       {
    8030         1065 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8031         1065 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8032         1065 :         if (tree_expr_nonnegative_p (_q20))
    8033              :           {
    8034          222 :             if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    8035              :               {
    8036            0 :                 {
    8037            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8038            0 :                   tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
    8039            0 :                   if (res) return res;
    8040              :                 }
    8041              :               }
    8042              :           }
    8043         1065 :         if (tree_expr_nonnegative_p (_q21))
    8044              :           {
    8045          296 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8046              :               {
    8047            0 :                 {
    8048            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8049            0 :                   tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
    8050            0 :                   if (res) return res;
    8051              :                 }
    8052              :               }
    8053              :           }
    8054              :         break;
    8055              :       }
    8056      6487933 :     default:;
    8057              :     }
    8058      6487933 :   switch (TREE_CODE (_p1))
    8059              :     {
    8060          195 :     case BIT_AND_EXPR:
    8061          195 :       {
    8062          195 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8063          195 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8064          195 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    8065              :           {
    8066            0 :             if (tree_expr_nonnegative_p (_q30))
    8067              :               {
    8068            0 :                 {
    8069            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    8070            0 :                   tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
    8071            0 :                   if (res) return res;
    8072              :                 }
    8073              :               }
    8074              :           }
    8075          195 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    8076              :           {
    8077            0 :             if (tree_expr_nonnegative_p (_q31))
    8078              :               {
    8079            0 :                 {
    8080            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    8081            0 :                   tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
    8082            0 :                   if (res) return res;
    8083              :                 }
    8084              :               }
    8085              :           }
    8086              :         break;
    8087              :       }
    8088      6487933 :     default:;
    8089              :     }
    8090      6487933 :   switch (TREE_CODE (_p0))
    8091              :     {
    8092          814 :     case MAX_EXPR:
    8093          814 :       {
    8094          814 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8095          814 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8096          814 :         switch (TREE_CODE (_p1))
    8097              :           {
    8098            0 :           case MIN_EXPR:
    8099            0 :             {
    8100            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8101            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8102            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8103              :                 {
    8104            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8105              :                     {
    8106            0 :                       {
    8107            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8108            0 :                         tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LE_EXPR);
    8109            0 :                         if (res) return res;
    8110              :                       }
    8111              :                     }
    8112              :                 }
    8113              :               break;
    8114              :             }
    8115              :           default:;
    8116              :           }
    8117              :         break;
    8118              :       }
    8119         2973 :     case MIN_EXPR:
    8120         2973 :       {
    8121         2973 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8122         2973 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8123         2973 :         switch (TREE_CODE (_p1))
    8124              :           {
    8125           27 :           case MAX_EXPR:
    8126           27 :             {
    8127           27 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8128           27 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8129           27 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8130              :                 {
    8131            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8132              :                     {
    8133            0 :                       {
    8134            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8135            0 :                         tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    8136            0 :                         if (res) return res;
    8137              :                       }
    8138              :                     }
    8139              :                 }
    8140              :               break;
    8141              :             }
    8142         2973 :           default:;
    8143              :           }
    8144         2973 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    8145              :           {
    8146            0 :             {
    8147            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8148            0 :               tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
    8149            0 :               if (res) return res;
    8150              :             }
    8151              :           }
    8152         2973 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8153              :           {
    8154            1 :             {
    8155            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8156            1 :               tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
    8157            1 :               if (res) return res;
    8158              :             }
    8159              :           }
    8160              :         break;
    8161              :       }
    8162      6487932 :     default:;
    8163              :     }
    8164      6487932 :   switch (TREE_CODE (_p1))
    8165              :     {
    8166          200 :     case MAX_EXPR:
    8167          200 :       {
    8168          200 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8169          200 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8170          200 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    8171              :           {
    8172            0 :             {
    8173            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    8174            0 :               tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
    8175            0 :               if (res) return res;
    8176              :             }
    8177              :           }
    8178          200 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    8179              :           {
    8180            0 :             {
    8181            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    8182            0 :               tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
    8183            0 :               if (res) return res;
    8184              :             }
    8185              :           }
    8186              :         break;
    8187              :       }
    8188         1706 :     case MIN_EXPR:
    8189         1706 :       {
    8190         1706 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8191         1706 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8192         1706 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    8193              :           {
    8194            0 :             {
    8195            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    8196            0 :               tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
    8197            0 :               if (res) return res;
    8198              :             }
    8199              :           }
    8200         1706 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    8201              :           {
    8202            0 :             {
    8203            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    8204            0 :               tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
    8205            0 :               if (res) return res;
    8206              :             }
    8207              :           }
    8208              :         break;
    8209              :       }
    8210      6487932 :     default:;
    8211              :     }
    8212      6487932 :   switch (TREE_CODE (_p0))
    8213              :     {
    8214          814 :     case MAX_EXPR:
    8215          814 :       {
    8216          814 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8217          814 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8218          814 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    8219              :           {
    8220            0 :             {
    8221            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8222            0 :               tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
    8223            0 :               if (res) return res;
    8224              :             }
    8225              :           }
    8226          814 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8227              :           {
    8228            2 :             {
    8229            2 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8230            2 :               tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
    8231            2 :               if (res) return res;
    8232              :             }
    8233              :           }
    8234          812 :         switch (TREE_CODE (_q21))
    8235              :           {
    8236          735 :           case INTEGER_CST:
    8237          735 :             {
    8238          735 :               switch (TREE_CODE (_p1))
    8239              :                 {
    8240            0 :                 case INTEGER_CST:
    8241            0 :                   {
    8242            0 :                     {
    8243            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8244            0 :                       tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, GE_EXPR, BIT_IOR_EXPR);
    8245            0 :                       if (res) return res;
    8246              :                     }
    8247            0 :                     break;
    8248              :                   }
    8249              :                 default:;
    8250              :                 }
    8251              :               break;
    8252              :             }
    8253              :           default:;
    8254              :           }
    8255              :         break;
    8256              :       }
    8257         2972 :     case MIN_EXPR:
    8258         2972 :       {
    8259         2972 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8260         2972 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8261         2972 :         switch (TREE_CODE (_q21))
    8262              :           {
    8263         1002 :           case INTEGER_CST:
    8264         1002 :             {
    8265         1002 :               switch (TREE_CODE (_p1))
    8266              :                 {
    8267            0 :                 case INTEGER_CST:
    8268            0 :                   {
    8269            0 :                     {
    8270            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8271            0 :                       tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, BIT_AND_EXPR);
    8272            0 :                       if (res) return res;
    8273              :                     }
    8274            0 :                     break;
    8275              :                   }
    8276              :                 default:;
    8277              :                 }
    8278              :               break;
    8279              :             }
    8280              :           default:;
    8281              :           }
    8282              :         break;
    8283              :       }
    8284       994281 :     CASE_CONVERT:
    8285       994281 :       {
    8286       994281 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8287       994281 :         switch (TREE_CODE (_q20))
    8288              :           {
    8289            0 :           case GE_EXPR:
    8290            0 :             {
    8291            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8292            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8293            0 :               if (tree_zero_one_valued_p (_q30))
    8294              :                 {
    8295            0 :                   if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    8296              :                     {
    8297            0 :                       {
    8298            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    8299            0 :                         tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, GE_EXPR);
    8300            0 :                         if (res) return res;
    8301              :                       }
    8302              :                     }
    8303              :                 }
    8304              :               break;
    8305              :             }
    8306              :           default:;
    8307              :           }
    8308              :         break;
    8309              :       }
    8310           41 :     case GE_EXPR:
    8311           41 :       {
    8312           41 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8313           41 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8314           41 :         if (tree_zero_one_valued_p (_q20))
    8315              :           {
    8316           15 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8317              :               {
    8318            3 :                 {
    8319            3 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8320            3 :                   tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, GE_EXPR);
    8321            3 :                   if (res) return res;
    8322              :                 }
    8323              :               }
    8324              :           }
    8325              :         break;
    8326              :       }
    8327            6 :     case VEC_COND_EXPR:
    8328            6 :       {
    8329            6 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8330            6 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8331            6 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8332            6 :         switch (TREE_CODE (_p1))
    8333              :           {
    8334            0 :           case VEC_COND_EXPR:
    8335            0 :             {
    8336            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8337            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8338            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8339            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    8340              :                 {
    8341            0 :                   {
    8342            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    8343            0 :                     if (VECTOR_TYPE_P (type)
    8344            0 :  && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
    8345            0 :  || types_match (type, TREE_TYPE (captures[2]))
    8346            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8347              :  || (optimize_vectors_before_lowering_p ()
    8348            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8349              : )
    8350              :                       {
    8351            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1638;
    8352            0 :                         {
    8353            0 :                           tree res_op0;
    8354            0 :                           res_op0 = captures[1];
    8355            0 :                           tree res_op1;
    8356            0 :                           {
    8357            0 :                             tree _o1[2], _r1;
    8358            0 :                             _o1[0] = captures[2];
    8359            0 :                             _o1[1] = captures[5];
    8360            0 :                             _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
    8361            0 :                             if (EXPR_P (_r1))
    8362            0 :                               goto next_after_fail1638;
    8363            0 :                             res_op1 = _r1;
    8364              :                           }
    8365            0 :                           tree res_op2;
    8366            0 :                           {
    8367            0 :                             tree _o1[2], _r1;
    8368            0 :                             _o1[0] = captures[3];
    8369            0 :                             _o1[1] = captures[6];
    8370            0 :                             _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
    8371            0 :                             if (EXPR_P (_r1))
    8372            0 :                               goto next_after_fail1638;
    8373            0 :                             res_op2 = _r1;
    8374              :                           }
    8375            0 :                           tree _r;
    8376            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8377            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
    8378            0 :                           return _r;
    8379              :                         }
    8380            0 : next_after_fail1638:;
    8381              :                       }
    8382              :                   }
    8383              :                 }
    8384              :               break;
    8385              :             }
    8386            6 :           default:;
    8387              :           }
    8388            6 :         {
    8389            6 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    8390            6 :           if (VECTOR_TYPE_P (type)
    8391            6 :  && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
    8392            6 :  || types_match (type, TREE_TYPE (captures[2]))
    8393            6 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8394              :  || (optimize_vectors_before_lowering_p ()
    8395            2 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8396              : )
    8397              :             {
    8398            6 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1639;
    8399            6 :               {
    8400            6 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1639;
    8401            5 :                 tree res_op0;
    8402            5 :                 res_op0 = captures[1];
    8403            5 :                 tree res_op1;
    8404            5 :                 {
    8405            5 :                   tree _o1[2], _r1;
    8406            5 :                   _o1[0] = captures[2];
    8407            5 :                   _o1[1] = unshare_expr (captures[4]);
    8408            5 :                   _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
    8409            5 :                   if (EXPR_P (_r1))
    8410            1 :                     goto next_after_fail1639;
    8411            4 :                   res_op1 = _r1;
    8412              :                 }
    8413            4 :                 tree res_op2;
    8414            4 :                 {
    8415            4 :                   tree _o1[2], _r1;
    8416            4 :                   _o1[0] = captures[3];
    8417            4 :                   _o1[1] = captures[4];
    8418            4 :                   _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
    8419            4 :                   if (EXPR_P (_r1))
    8420            0 :                     goto next_after_fail1639;
    8421            4 :                   res_op2 = _r1;
    8422              :                 }
    8423            4 :                 tree _r;
    8424            4 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8425            4 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
    8426            4 :                 return _r;
    8427              :               }
    8428            2 : next_after_fail1639:;
    8429              :             }
    8430              :         }
    8431            2 :         break;
    8432              :       }
    8433      6487923 :     default:;
    8434              :     }
    8435      6487923 :   switch (TREE_CODE (_p1))
    8436              :     {
    8437            0 :     case VEC_COND_EXPR:
    8438            0 :       {
    8439            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8440            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8441            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    8442            0 :         {
    8443            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    8444            0 :           if (VECTOR_TYPE_P (type)
    8445            0 :  && (TREE_CODE_CLASS (GE_EXPR) != tcc_comparison
    8446            0 :  || types_match (type, TREE_TYPE (captures[3]))
    8447            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    8448              :  || (optimize_vectors_before_lowering_p ()
    8449            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    8450              : )
    8451              :             {
    8452            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1640;
    8453            0 :               {
    8454            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1640;
    8455            0 :                 tree res_op0;
    8456            0 :                 res_op0 = captures[2];
    8457            0 :                 tree res_op1;
    8458            0 :                 {
    8459            0 :                   tree _o1[2], _r1;
    8460            0 :                   _o1[0] = unshare_expr (captures[0]);
    8461            0 :                   _o1[1] = captures[3];
    8462            0 :                   _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
    8463            0 :                   if (EXPR_P (_r1))
    8464            0 :                     goto next_after_fail1640;
    8465            0 :                   res_op1 = _r1;
    8466              :                 }
    8467            0 :                 tree res_op2;
    8468            0 :                 {
    8469            0 :                   tree _o1[2], _r1;
    8470            0 :                   _o1[0] = captures[0];
    8471            0 :                   _o1[1] = captures[4];
    8472            0 :                   _r1 = fold_build2_loc (loc, GE_EXPR, type, _o1[0], _o1[1]);
    8473            0 :                   if (EXPR_P (_r1))
    8474            0 :                     goto next_after_fail1640;
    8475            0 :                   res_op2 = _r1;
    8476              :                 }
    8477            0 :                 tree _r;
    8478            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8479            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    8480            0 :                 return _r;
    8481              :               }
    8482            0 : next_after_fail1640:;
    8483              :             }
    8484              :         }
    8485            0 :         break;
    8486              :       }
    8487      6487923 :     default:;
    8488              :     }
    8489      6487923 : if (uniform_integer_cst_p (_p1))
    8490              :   {
    8491      3263367 :     {
    8492      3263367 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8493      3263367 :       tree res = generic_simplify_388 (loc, type, _p0, _p1, captures, GE_EXPR, GT_EXPR);
    8494      3263367 :       if (res) return res;
    8495              :     }
    8496              :   }
    8497      5026004 :   switch (TREE_CODE (_p0))
    8498              :     {
    8499        23649 :     case MULT_EXPR:
    8500        23649 :       {
    8501        23649 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8502        23649 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8503        23649 :         switch (TREE_CODE (_q21))
    8504              :           {
    8505        19728 :           case INTEGER_CST:
    8506        19728 :             {
    8507        19728 :               if (integer_zerop (_p1))
    8508              :                 {
    8509         2746 :                   {
    8510         2746 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    8511         2746 :                     tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    8512         2746 :                     if (res) return res;
    8513              :                   }
    8514              :                 }
    8515              :               break;
    8516              :             }
    8517              :           default:;
    8518              :           }
    8519              :         break;
    8520              :       }
    8521      5025712 :     default:;
    8522              :     }
    8523      5025712 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8524              :     {
    8525        37677 :       {
    8526        37677 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8527        37677 :         tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, GE_EXPR);
    8528        37677 :         if (res) return res;
    8529              :       }
    8530              :     }
    8531      4988072 :   switch (TREE_CODE (_p0))
    8532              :     {
    8533          418 :     case BIT_NOT_EXPR:
    8534          418 :       {
    8535          418 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8536          418 :         switch (TREE_CODE (_p1))
    8537              :           {
    8538            1 :           case BIT_NOT_EXPR:
    8539            1 :             {
    8540            1 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8541            1 :               {
    8542            1 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
    8543            1 :                 tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GE_EXPR);
    8544            1 :                 if (res) return res;
    8545              :               }
    8546            0 :               break;
    8547              :             }
    8548          417 :           default:;
    8549              :           }
    8550          417 :       {
    8551          417 :         tree _p1_pops[1];
    8552          417 :         if (tree_nop_convert (_p1, _p1_pops))
    8553              :           {
    8554           50 :             tree _q40 = _p1_pops[0];
    8555           50 :             switch (TREE_CODE (_q40))
    8556              :               {
    8557            0 :               case BIT_NOT_EXPR:
    8558            0 :                 {
    8559            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    8560            0 :                   {
    8561            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
    8562            0 :                     tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, GE_EXPR);
    8563            0 :                     if (res) return res;
    8564              :                   }
    8565            0 :                   break;
    8566              :                 }
    8567              :               default:;
    8568              :               }
    8569              :           }
    8570              :       }
    8571          417 :       if (CONSTANT_CLASS_P (_p1))
    8572              :         {
    8573           94 :           {
    8574           94 :             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8575           94 :             tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    8576           94 :             if (res) return res;
    8577              :           }
    8578              :         }
    8579              :         break;
    8580              :       }
    8581      4987977 :     default:;
    8582              :     }
    8583      4987977 : {
    8584      4987977 :   tree _p0_pops[1];
    8585      4987977 :   if (tree_nop_convert (_p0, _p0_pops))
    8586              :     {
    8587       225786 :       tree _q20 = _p0_pops[0];
    8588       225786 :       switch (TREE_CODE (_q20))
    8589              :         {
    8590            4 :         case BIT_NOT_EXPR:
    8591            4 :           {
    8592            4 :             tree _q30 = TREE_OPERAND (_q20, 0);
    8593            4 :             switch (TREE_CODE (_p1))
    8594              :               {
    8595            0 :               case BIT_NOT_EXPR:
    8596            0 :                 {
    8597            0 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    8598            0 :                   {
    8599            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
    8600            0 :                     tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GE_EXPR);
    8601            0 :                     if (res) return res;
    8602              :                   }
    8603            0 :                   break;
    8604              :                 }
    8605            4 :               default:;
    8606              :               }
    8607            4 :           {
    8608            4 :             tree _p1_pops[1];
    8609            4 :             if (tree_nop_convert (_p1, _p1_pops))
    8610              :               {
    8611            0 :                 tree _q50 = _p1_pops[0];
    8612            0 :                 switch (TREE_CODE (_q50))
    8613              :                   {
    8614            0 :                   case BIT_NOT_EXPR:
    8615            0 :                     {
    8616            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    8617            0 :                       {
    8618            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
    8619            0 :                         tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, GE_EXPR);
    8620            0 :                         if (res) return res;
    8621              :                       }
    8622            0 :                       break;
    8623              :                     }
    8624              :                   default:;
    8625              :                   }
    8626              :               }
    8627              :           }
    8628            4 :           if (CONSTANT_CLASS_P (_p1))
    8629              :             {
    8630            0 :               {
    8631            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    8632            0 :                 tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    8633            0 :                 if (res) return res;
    8634              :               }
    8635              :             }
    8636              :             break;
    8637              :           }
    8638              :         default:;
    8639              :         }
    8640              :     }
    8641              : }
    8642      4987977 :   switch (TREE_CODE (_p1))
    8643              :     {
    8644       624471 :     case REAL_CST:
    8645       624471 :       {
    8646       624471 :         {
    8647       624471 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8648       624471 :           tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, GE_EXPR);
    8649       624471 :           if (res) return res;
    8650              :         }
    8651       624402 :         break;
    8652              :       }
    8653      4987908 :     default:;
    8654              :     }
    8655      4987908 :   switch (TREE_CODE (_p0))
    8656              :     {
    8657       678036 :     case PLUS_EXPR:
    8658       678036 :       {
    8659       678036 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8660       678036 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8661       678036 :         switch (TREE_CODE (_q21))
    8662              :           {
    8663          168 :           case REAL_CST:
    8664          168 :             {
    8665          168 :               switch (TREE_CODE (_p1))
    8666              :                 {
    8667           20 :                 case REAL_CST:
    8668           20 :                   {
    8669           20 :                     {
    8670           20 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8671           20 :                       tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, PLUS_EXPR, GE_EXPR);
    8672           20 :                       if (res) return res;
    8673              :                     }
    8674           20 :                     break;
    8675              :                   }
    8676              :                 default:;
    8677              :                 }
    8678              :               break;
    8679              :             }
    8680       566341 :           case INTEGER_CST:
    8681       566341 :             {
    8682       566341 :               if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    8683              :                 {
    8684        16009 :                   {
    8685        16009 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
    8686        16009 :                     tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    8687        16009 :                     if (res) return res;
    8688              :                   }
    8689              :                 }
    8690              :               break;
    8691              :             }
    8692              :           default:;
    8693              :           }
    8694              :         break;
    8695              :       }
    8696        58409 :     case MINUS_EXPR:
    8697        58409 :       {
    8698        58409 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8699        58409 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8700        58409 :         switch (TREE_CODE (_q21))
    8701              :           {
    8702           31 :           case REAL_CST:
    8703           31 :             {
    8704           31 :               switch (TREE_CODE (_p1))
    8705              :                 {
    8706           31 :                 case REAL_CST:
    8707           31 :                   {
    8708           31 :                     {
    8709           31 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8710           31 :                       tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, MINUS_EXPR, GE_EXPR);
    8711           31 :                       if (res) return res;
    8712              :                     }
    8713           31 :                     break;
    8714              :                   }
    8715              :                 default:;
    8716              :                 }
    8717              :               break;
    8718              :             }
    8719        58409 :           default:;
    8720              :           }
    8721        58409 :         switch (TREE_CODE (_q20))
    8722              :           {
    8723           24 :           case REAL_CST:
    8724           24 :             {
    8725           24 :               switch (TREE_CODE (_p1))
    8726              :                 {
    8727            0 :                 case REAL_CST:
    8728            0 :                   {
    8729            0 :                     {
    8730            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8731            0 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, GE_EXPR);
    8732            0 :                       if (res) return res;
    8733              :                     }
    8734            0 :                     break;
    8735              :                   }
    8736              :                 default:;
    8737              :                 }
    8738              :               break;
    8739              :             }
    8740              :           default:;
    8741              :           }
    8742              :         break;
    8743              :       }
    8744        39146 :     case FLOAT_EXPR:
    8745        39146 :       {
    8746        39146 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8747        39146 :         switch (TREE_CODE (_p1))
    8748              :           {
    8749            7 :           case FLOAT_EXPR:
    8750            7 :             {
    8751            7 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8752            7 :               {
    8753            7 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8754            7 :                 tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
    8755            7 :                 if (res) return res;
    8756              :               }
    8757            0 :               break;
    8758              :             }
    8759        37667 :           case REAL_CST:
    8760        37667 :             {
    8761        37667 :               {
    8762        37667 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8763        37667 :                 tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, GE_EXPR, GE_EXPR);
    8764        37667 :                 if (res) return res;
    8765              :               }
    8766        18870 :               break;
    8767              :             }
    8768              :           default:;
    8769              :           }
    8770              :         break;
    8771              :       }
    8772         8006 :     case EXACT_DIV_EXPR:
    8773         8006 :       {
    8774         8006 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8775         8006 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8776         8006 :         switch (TREE_CODE (_q21))
    8777              :           {
    8778         8006 :           case INTEGER_CST:
    8779         8006 :             {
    8780         8006 :               switch (TREE_CODE (_p1))
    8781              :                 {
    8782            0 :                 case INTEGER_CST:
    8783            0 :                   {
    8784            0 :                     {
    8785            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8786            0 :                       tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, GE_EXPR);
    8787            0 :                       if (res) return res;
    8788              :                     }
    8789            0 :                     break;
    8790              :                   }
    8791              :                 default:;
    8792              :                 }
    8793              :               break;
    8794              :             }
    8795              :           default:;
    8796              :           }
    8797              :         break;
    8798              :       }
    8799       594320 :     CASE_CONVERT:
    8800       594320 :       {
    8801       594320 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8802       594320 :         switch (TREE_CODE (_q20))
    8803              :           {
    8804          157 :           case EXACT_DIV_EXPR:
    8805          157 :             {
    8806          157 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8807          157 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8808          157 :               switch (TREE_CODE (_q31))
    8809              :                 {
    8810          157 :                 case INTEGER_CST:
    8811          157 :                   {
    8812          157 :                     switch (TREE_CODE (_p1))
    8813              :                       {
    8814            0 :                       case INTEGER_CST:
    8815            0 :                         {
    8816            0 :                           {
    8817            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    8818            0 :                             tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR);
    8819            0 :                             if (res) return res;
    8820              :                           }
    8821            0 :                           break;
    8822              :                         }
    8823              :                       default:;
    8824              :                       }
    8825              :                     break;
    8826              :                   }
    8827              :                 default:;
    8828              :                 }
    8829              :               break;
    8830              :             }
    8831       594320 :           default:;
    8832              :           }
    8833       594320 :         switch (TREE_CODE (_p1))
    8834              :           {
    8835        94715 :           CASE_CONVERT:
    8836        94715 :             {
    8837        94715 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8838        94715 :               {
    8839        94715 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8840        94715 :                 tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, GE_EXPR);
    8841        94715 :                 if (res) return res;
    8842              :               }
    8843        58250 :               break;
    8844              :             }
    8845       557855 :           default:;
    8846              :           }
    8847       557855 :         {
    8848       557855 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
    8849       557855 :           tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, GE_EXPR);
    8850       557855 :           if (res) return res;
    8851              :         }
    8852       308760 :         switch (TREE_CODE (_q20))
    8853              :           {
    8854         1442 :           case ADDR_EXPR:
    8855         1442 :             {
    8856         1442 :               switch (TREE_CODE (_p1))
    8857              :                 {
    8858         1378 :                 CASE_CONVERT:
    8859         1378 :                   {
    8860         1378 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    8861         1378 :                     switch (TREE_CODE (_q40))
    8862              :                       {
    8863         1378 :                       case ADDR_EXPR:
    8864         1378 :                         {
    8865         1378 :                           {
    8866         1378 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8867         1378 :                             tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, GE_EXPR);
    8868         1378 :                             if (res) return res;
    8869              :                           }
    8870          178 :                           break;
    8871              :                         }
    8872              :                       default:;
    8873              :                       }
    8874              :                     break;
    8875              :                   }
    8876            0 :                 case ADDR_EXPR:
    8877            0 :                   {
    8878            0 :                     {
    8879            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8880            0 :                       tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, GE_EXPR);
    8881            0 :                       if (res) return res;
    8882              :                     }
    8883            0 :                     break;
    8884              :                   }
    8885              :                 default:;
    8886              :                 }
    8887              :               break;
    8888              :             }
    8889       307560 :           default:;
    8890              :           }
    8891       307560 :         if (uniform_integer_cst_p (_p1))
    8892              :           {
    8893        97375 :             {
    8894        97375 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8895        97375 :               tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, GE_EXPR);
    8896        97375 :               if (res) return res;
    8897              :             }
    8898              :           }
    8899              :         break;
    8900              :       }
    8901          787 :     case NEGATE_EXPR:
    8902          787 :       {
    8903          787 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8904          787 :         switch (TREE_CODE (_p1))
    8905              :           {
    8906            0 :           case NEGATE_EXPR:
    8907            0 :             {
    8908            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    8909            0 :               {
    8910            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    8911            0 :                 tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    8912            0 :                 if (res) return res;
    8913              :               }
    8914            0 :               break;
    8915              :             }
    8916          787 :           default:;
    8917              :           }
    8918          787 :       if (CONSTANT_CLASS_P (_p1))
    8919              :         {
    8920          270 :           {
    8921          270 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8922          270 :             tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    8923          270 :             if (res) return res;
    8924              :           }
    8925              :         }
    8926              :         break;
    8927              :       }
    8928         7616 :     case ADDR_EXPR:
    8929         7616 :       {
    8930         7616 :         switch (TREE_CODE (_p1))
    8931              :           {
    8932            0 :           CASE_CONVERT:
    8933            0 :             {
    8934            0 :               tree _q30 = TREE_OPERAND (_p1, 0);
    8935            0 :               switch (TREE_CODE (_q30))
    8936              :                 {
    8937            0 :                 case ADDR_EXPR:
    8938            0 :                   {
    8939            0 :                     {
    8940            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
    8941            0 :                       tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, GE_EXPR);
    8942            0 :                       if (res) return res;
    8943              :                     }
    8944            0 :                     break;
    8945              :                   }
    8946              :                 default:;
    8947              :                 }
    8948              :               break;
    8949              :             }
    8950         7248 :           case ADDR_EXPR:
    8951         7248 :             {
    8952         7248 :               {
    8953         7248 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
    8954         7248 :                 tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, GE_EXPR);
    8955         7248 :                 if (res) return res;
    8956              :               }
    8957           92 :               break;
    8958              :             }
    8959              :           default:;
    8960              :           }
    8961              :         break;
    8962              :       }
    8963       225212 :     case CALL_EXPR:
    8964       225212 :       switch (get_call_combined_fn (_p0))
    8965              :         {
    8966            2 :         case CFN_BUILT_IN_SQRTF:
    8967            2 :           if (call_expr_nargs (_p0) == 1)
    8968              :     {
    8969            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8970            2 :               switch (TREE_CODE (_p1))
    8971              :                 {
    8972            2 :                 case REAL_CST:
    8973            2 :                   {
    8974            2 :                     {
    8975            2 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8976            2 :                       tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
    8977            2 :                       if (res) return res;
    8978              :                     }
    8979            0 :                     break;
    8980              :                   }
    8981            0 :                 case CALL_EXPR:
    8982            0 :                   switch (get_call_combined_fn (_p1))
    8983              :                     {
    8984            0 :                     case CFN_BUILT_IN_SQRTF:
    8985            0 :                       if (call_expr_nargs (_p1) == 1)
    8986              :     {
    8987            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8988            0 :                           {
    8989            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    8990            0 :                             tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, GE_EXPR);
    8991            0 :                             if (res) return res;
    8992              :                           }
    8993              :                         }
    8994              :                       break;
    8995              :                     default:;
    8996              :                     }
    8997              :                   break;
    8998              :                 default:;
    8999              :                 }
    9000              :             }
    9001              :           break;
    9002            0 :         case CFN_BUILT_IN_SQRTL:
    9003            0 :           if (call_expr_nargs (_p0) == 1)
    9004              :     {
    9005            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9006            0 :               switch (TREE_CODE (_p1))
    9007              :                 {
    9008            0 :                 case REAL_CST:
    9009            0 :                   {
    9010            0 :                     {
    9011            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9012            0 :                       tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
    9013            0 :                       if (res) return res;
    9014              :                     }
    9015            0 :                     break;
    9016              :                   }
    9017            0 :                 case CALL_EXPR:
    9018            0 :                   switch (get_call_combined_fn (_p1))
    9019              :                     {
    9020            0 :                     case CFN_BUILT_IN_SQRTL:
    9021            0 :                       if (call_expr_nargs (_p1) == 1)
    9022              :     {
    9023            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9024            0 :                           {
    9025            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9026            0 :                             tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, GE_EXPR);
    9027            0 :                             if (res) return res;
    9028              :                           }
    9029              :                         }
    9030              :                       break;
    9031              :                     default:;
    9032              :                     }
    9033              :                   break;
    9034              :                 default:;
    9035              :                 }
    9036              :             }
    9037              :           break;
    9038            1 :         case CFN_BUILT_IN_SQRT:
    9039            1 :           if (call_expr_nargs (_p0) == 1)
    9040              :     {
    9041            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9042            1 :               switch (TREE_CODE (_p1))
    9043              :                 {
    9044            1 :                 case REAL_CST:
    9045            1 :                   {
    9046            1 :                     {
    9047            1 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9048            1 :                       tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
    9049            1 :                       if (res) return res;
    9050              :                     }
    9051            1 :                     break;
    9052              :                   }
    9053            0 :                 case CALL_EXPR:
    9054            0 :                   switch (get_call_combined_fn (_p1))
    9055              :                     {
    9056            0 :                     case CFN_BUILT_IN_SQRT:
    9057            0 :                       if (call_expr_nargs (_p1) == 1)
    9058              :     {
    9059            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9060            0 :                           {
    9061            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9062            0 :                             tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, GE_EXPR);
    9063            0 :                             if (res) return res;
    9064              :                           }
    9065              :                         }
    9066              :                       break;
    9067              :                     default:;
    9068              :                     }
    9069              :                   break;
    9070              :                 default:;
    9071              :                 }
    9072              :             }
    9073              :           break;
    9074            0 :         case CFN_SQRT:
    9075            0 :           if (call_expr_nargs (_p0) == 1)
    9076              :     {
    9077            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9078            0 :               switch (TREE_CODE (_p1))
    9079              :                 {
    9080            0 :                 case REAL_CST:
    9081            0 :                   {
    9082            0 :                     {
    9083            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9084            0 :                       tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, CFN_SQRT, GE_EXPR);
    9085            0 :                       if (res) return res;
    9086              :                     }
    9087            0 :                     break;
    9088              :                   }
    9089            0 :                 case CALL_EXPR:
    9090            0 :                   switch (get_call_combined_fn (_p1))
    9091              :                     {
    9092            0 :                     case CFN_SQRT:
    9093            0 :                       if (call_expr_nargs (_p1) == 1)
    9094              :     {
    9095            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9096            0 :                           {
    9097            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    9098            0 :                             tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_SQRT, GE_EXPR);
    9099            0 :                             if (res) return res;
    9100              :                           }
    9101              :                         }
    9102              :                       break;
    9103              :                     default:;
    9104              :                     }
    9105              :                   break;
    9106              :                 default:;
    9107              :                 }
    9108              :             }
    9109              :           break;
    9110              :         default:;
    9111              :         }
    9112              :       break;
    9113      4648777 :     default:;
    9114              :     }
    9115      4648777 :   if (uniform_integer_cst_p (_p1))
    9116              :     {
    9117      1541765 :       {
    9118      1541765 :         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
    9119      1541765 :         tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, GE_EXPR);
    9120      1541765 :         if (res) return res;
    9121              :       }
    9122              :     }
    9123      4349684 :   switch (TREE_CODE (_p0))
    9124              :     {
    9125       296594 :     CASE_CONVERT:
    9126       296594 :       {
    9127       296594 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9128       296594 :         switch (TREE_CODE (_q20))
    9129              :           {
    9130        31998 :           case PLUS_EXPR:
    9131        31998 :             {
    9132        31998 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9133        31998 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9134        31998 :               switch (TREE_CODE (_q30))
    9135              :                 {
    9136        23133 :                 CASE_CONVERT:
    9137        23133 :                   {
    9138        23133 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    9139        23133 :                     switch (TREE_CODE (_q31))
    9140              :                       {
    9141        23132 :                       case INTEGER_CST:
    9142        23132 :                         {
    9143        23132 :                           if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    9144              :                             {
    9145          129 :                               {
    9146          129 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
    9147          129 :                                 tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    9148          129 :                                 if (res) return res;
    9149              :                               }
    9150              :                             }
    9151              :                           break;
    9152              :                         }
    9153              :                       default:;
    9154              :                       }
    9155              :                     break;
    9156              :                   }
    9157              :                 default:;
    9158              :                 }
    9159              :               break;
    9160              :             }
    9161              :           default:;
    9162              :           }
    9163              :         break;
    9164              :       }
    9165      4349627 :     default:;
    9166              :     }
    9167      4349627 :   switch (TREE_CODE (_p1))
    9168              :     {
    9169       220055 :     CASE_CONVERT:
    9170       220055 :       {
    9171       220055 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9172       220055 :         switch (TREE_CODE (_q30))
    9173              :           {
    9174          266 :           case PLUS_EXPR:
    9175          266 :             {
    9176          266 :               tree _q40 = TREE_OPERAND (_q30, 0);
    9177          266 :               tree _q41 = TREE_OPERAND (_q30, 1);
    9178          266 :               switch (TREE_CODE (_q40))
    9179              :                 {
    9180          204 :                 CASE_CONVERT:
    9181          204 :                   {
    9182          204 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    9183          204 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    9184              :                       {
    9185            0 :                         switch (TREE_CODE (_q41))
    9186              :                           {
    9187            0 :                           case INTEGER_CST:
    9188            0 :                             {
    9189            0 :                               {
    9190            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
    9191            0 :                                 tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
    9192            0 :                                 if (res) return res;
    9193              :                               }
    9194            0 :                               break;
    9195              :                             }
    9196              :                           default:;
    9197              :                           }
    9198              :                       }
    9199              :                     break;
    9200              :                   }
    9201              :                 default:;
    9202              :                 }
    9203              :               break;
    9204              :             }
    9205              :           default:;
    9206              :           }
    9207              :         break;
    9208              :       }
    9209        59019 :     case PLUS_EXPR:
    9210        59019 :       {
    9211        59019 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9212        59019 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9213        59019 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9214              :           {
    9215            0 :             switch (TREE_CODE (_q31))
    9216              :               {
    9217            0 :               case INTEGER_CST:
    9218            0 :                 {
    9219            0 :                   {
    9220            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
    9221            0 :                     tree res = generic_simplify_389 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
    9222            0 :                     if (res) return res;
    9223              :                   }
    9224            0 :                   break;
    9225              :                 }
    9226              :               default:;
    9227              :               }
    9228              :           }
    9229              :         break;
    9230              :       }
    9231         2422 :     case MINUS_EXPR:
    9232         2422 :       {
    9233         2422 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9234         2422 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9235         2422 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9236              :           {
    9237            0 :             {
    9238            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
    9239            0 :               tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LE_EXPR);
    9240            0 :               if (res) return res;
    9241              :             }
    9242              :           }
    9243              :         break;
    9244              :       }
    9245      4349627 :     default:;
    9246              :     }
    9247      4349627 :   switch (TREE_CODE (_p0))
    9248              :     {
    9249       587335 :     case PLUS_EXPR:
    9250       587335 :       {
    9251       587335 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9252       587335 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9253       587335 :         switch (TREE_CODE (_q20))
    9254              :           {
    9255          141 :           case MINUS_EXPR:
    9256          141 :             {
    9257          141 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9258          141 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9259          141 :               if (integer_minus_onep (_q21))
    9260              :                 {
    9261            1 :                   if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    9262              :                     {
    9263            1 :                       {
    9264            1 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    9265            1 :                         tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, GE_EXPR);
    9266            1 :                         if (res) return res;
    9267              :                       }
    9268              :                     }
    9269              :                 }
    9270              :               break;
    9271              :             }
    9272              :           default:;
    9273              :           }
    9274              :         break;
    9275              :       }
    9276      4349626 :     default:;
    9277              :     }
    9278      4349626 :   switch (TREE_CODE (_p1))
    9279              :     {
    9280            0 :     case REALPART_EXPR:
    9281            0 :       {
    9282            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9283            0 :         switch (TREE_CODE (_q30))
    9284              :           {
    9285            0 :           case CALL_EXPR:
    9286            0 :             switch (get_call_combined_fn (_q30))
    9287              :               {
    9288            0 :               case CFN_SUB_OVERFLOW:
    9289            0 :                 if (call_expr_nargs (_q30) == 2)
    9290              :     {
    9291            0 :                     tree _q40 = CALL_EXPR_ARG (_q30, 0);
    9292            0 :                     tree _q41 = CALL_EXPR_ARG (_q30, 1);
    9293            0 :                     if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    9294              :                       {
    9295            0 :                         {
    9296            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
    9297            0 :                           tree res = generic_simplify_397 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
    9298            0 :                           if (res) return res;
    9299              :                         }
    9300              :                       }
    9301              :                   }
    9302              :                 break;
    9303              :               default:;
    9304              :               }
    9305              :             break;
    9306              :           default:;
    9307              :           }
    9308              :         break;
    9309              :       }
    9310      4349626 :     default:;
    9311              :     }
    9312      4349626 :   switch (TREE_CODE (_p0))
    9313              :     {
    9314            0 :     case REALPART_EXPR:
    9315            0 :       {
    9316            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9317            0 :         switch (TREE_CODE (_q20))
    9318              :           {
    9319            0 :           case CALL_EXPR:
    9320            0 :             switch (get_call_combined_fn (_q20))
    9321              :               {
    9322            0 :               case CFN_ADD_OVERFLOW:
    9323            0 :                 if (call_expr_nargs (_q20) == 2)
    9324              :     {
    9325            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    9326            0 :                     tree _q31 = CALL_EXPR_ARG (_q20, 1);
    9327            0 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    9328              :                       {
    9329            0 :                         {
    9330            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    9331            0 :                           tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    9332            0 :                           if (res) return res;
    9333              :                         }
    9334              :                       }
    9335            0 :                     if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    9336              :                       {
    9337            0 :                         {
    9338            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q31, _q30 };
    9339            0 :                           tree res = generic_simplify_398 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    9340            0 :                           if (res) return res;
    9341              :                         }
    9342              :                       }
    9343              :                   }
    9344              :                 break;
    9345              :               default:;
    9346              :               }
    9347              :             break;
    9348              :           default:;
    9349              :           }
    9350              :         break;
    9351              :       }
    9352         1430 :     case TRUNC_DIV_EXPR:
    9353         1430 :       {
    9354         1430 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9355         1430 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9356         1430 :         if (integer_all_onesp (_q20))
    9357              :           {
    9358           33 :             {
    9359           33 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _p1 };
    9360           33 :               tree res = generic_simplify_399 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    9361           33 :               if (res) return res;
    9362              :             }
    9363              :           }
    9364              :         break;
    9365              :       }
    9366        21901 :     case MULT_EXPR:
    9367        21901 :       {
    9368        21901 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9369        21901 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9370        21901 :         switch (TREE_CODE (_q21))
    9371              :           {
    9372          305 :           case REAL_CST:
    9373          305 :             {
    9374          305 :               switch (TREE_CODE (_p1))
    9375              :                 {
    9376           43 :                 case REAL_CST:
    9377           43 :                   {
    9378           43 :                     {
    9379           43 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    9380           43 :                       tree res = generic_simplify_400 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    9381           43 :                       if (res) return res;
    9382              :                     }
    9383           43 :                     break;
    9384              :                   }
    9385              :                 default:;
    9386              :                 }
    9387              :               break;
    9388              :             }
    9389              :           default:;
    9390              :           }
    9391              :         break;
    9392              :       }
    9393          151 :     case REAL_CST:
    9394          151 :       {
    9395          151 :         switch (TREE_CODE (_p1))
    9396              :           {
    9397            0 :           case CALL_EXPR:
    9398            0 :             switch (get_call_combined_fn (_p1))
    9399              :               {
    9400            0 :               case CFN_BUILT_IN_EXP:
    9401            0 :                 if (call_expr_nargs (_p1) == 1)
    9402              :     {
    9403            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9404            0 :                     {
    9405            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9406            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
    9407            0 :                       if (res) return res;
    9408              :                     }
    9409              :                   }
    9410              :                 break;
    9411            0 :               case CFN_BUILT_IN_LOG:
    9412            0 :                 if (call_expr_nargs (_p1) == 1)
    9413              :     {
    9414            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9415            0 :                     {
    9416            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9417            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
    9418            0 :                       if (res) return res;
    9419              :                     }
    9420              :                   }
    9421              :                 break;
    9422            0 :               case CFN_BUILT_IN_EXP10F:
    9423            0 :                 if (call_expr_nargs (_p1) == 1)
    9424              :     {
    9425            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9426            0 :                     {
    9427            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9428            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
    9429            0 :                       if (res) return res;
    9430              :                     }
    9431              :                   }
    9432              :                 break;
    9433            0 :               case CFN_BUILT_IN_EXP10L:
    9434            0 :                 if (call_expr_nargs (_p1) == 1)
    9435              :     {
    9436            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9437            0 :                     {
    9438            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9439            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
    9440            0 :                       if (res) return res;
    9441              :                     }
    9442              :                   }
    9443              :                 break;
    9444            0 :               case CFN_BUILT_IN_EXP2:
    9445            0 :                 if (call_expr_nargs (_p1) == 1)
    9446              :     {
    9447            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9448            0 :                     {
    9449            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9450            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
    9451            0 :                       if (res) return res;
    9452              :                     }
    9453              :                   }
    9454              :                 break;
    9455            0 :               case CFN_BUILT_IN_EXPF:
    9456            0 :                 if (call_expr_nargs (_p1) == 1)
    9457              :     {
    9458            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9459            0 :                     {
    9460            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9461            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
    9462            0 :                       if (res) return res;
    9463              :                     }
    9464              :                   }
    9465              :                 break;
    9466            0 :               case CFN_BUILT_IN_EXPL:
    9467            0 :                 if (call_expr_nargs (_p1) == 1)
    9468              :     {
    9469            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9470            0 :                     {
    9471            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9472            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
    9473            0 :                       if (res) return res;
    9474              :                     }
    9475              :                   }
    9476              :                 break;
    9477            0 :               case CFN_BUILT_IN_LOG2:
    9478            0 :                 if (call_expr_nargs (_p1) == 1)
    9479              :     {
    9480            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9481            0 :                     {
    9482            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9483            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
    9484            0 :                       if (res) return res;
    9485              :                     }
    9486              :                   }
    9487              :                 break;
    9488            0 :               case CFN_BUILT_IN_LOGF:
    9489            0 :                 if (call_expr_nargs (_p1) == 1)
    9490              :     {
    9491            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9492            0 :                     {
    9493            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9494            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
    9495            0 :                       if (res) return res;
    9496              :                     }
    9497              :                   }
    9498              :                 break;
    9499            0 :               case CFN_BUILT_IN_LOGL:
    9500            0 :                 if (call_expr_nargs (_p1) == 1)
    9501              :     {
    9502            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9503            0 :                     {
    9504            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9505            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
    9506            0 :                       if (res) return res;
    9507              :                     }
    9508              :                   }
    9509              :                 break;
    9510            0 :               case CFN_BUILT_IN_LOG10F:
    9511            0 :                 if (call_expr_nargs (_p1) == 1)
    9512              :     {
    9513            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9514            0 :                     {
    9515            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9516            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
    9517            0 :                       if (res) return res;
    9518              :                     }
    9519              :                   }
    9520              :                 break;
    9521            0 :               case CFN_BUILT_IN_LOG10L:
    9522            0 :                 if (call_expr_nargs (_p1) == 1)
    9523              :     {
    9524            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9525            0 :                     {
    9526            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9527            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
    9528            0 :                       if (res) return res;
    9529              :                     }
    9530              :                   }
    9531              :                 break;
    9532            0 :               case CFN_EXP:
    9533            0 :                 if (call_expr_nargs (_p1) == 1)
    9534              :     {
    9535            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9536            0 :                     {
    9537            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9538            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
    9539            0 :                       if (res) return res;
    9540              :                     }
    9541              :                   }
    9542              :                 break;
    9543            0 :               case CFN_LOG:
    9544            0 :                 if (call_expr_nargs (_p1) == 1)
    9545              :     {
    9546            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9547            0 :                     {
    9548            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9549            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
    9550            0 :                       if (res) return res;
    9551              :                     }
    9552              :                   }
    9553              :                 break;
    9554            0 :               case CFN_EXP2:
    9555            0 :                 if (call_expr_nargs (_p1) == 1)
    9556              :     {
    9557            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9558            0 :                     {
    9559            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9560            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
    9561            0 :                       if (res) return res;
    9562              :                     }
    9563              :                   }
    9564              :                 break;
    9565            0 :               case CFN_LOG2:
    9566            0 :                 if (call_expr_nargs (_p1) == 1)
    9567              :     {
    9568            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9569            0 :                     {
    9570            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9571            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
    9572            0 :                       if (res) return res;
    9573              :                     }
    9574              :                   }
    9575              :                 break;
    9576            0 :               case CFN_EXP10:
    9577            0 :                 if (call_expr_nargs (_p1) == 1)
    9578              :     {
    9579            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9580            0 :                     {
    9581            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9582            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
    9583            0 :                       if (res) return res;
    9584              :                     }
    9585              :                   }
    9586              :                 break;
    9587            0 :               case CFN_LOG10:
    9588            0 :                 if (call_expr_nargs (_p1) == 1)
    9589              :     {
    9590            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9591            0 :                     {
    9592            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9593            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
    9594            0 :                       if (res) return res;
    9595              :                     }
    9596              :                   }
    9597              :                 break;
    9598            0 :               case CFN_BUILT_IN_EXP10:
    9599            0 :                 if (call_expr_nargs (_p1) == 1)
    9600              :     {
    9601            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9602            0 :                     {
    9603            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9604            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
    9605            0 :                       if (res) return res;
    9606              :                     }
    9607              :                   }
    9608              :                 break;
    9609            0 :               case CFN_BUILT_IN_EXP2F:
    9610            0 :                 if (call_expr_nargs (_p1) == 1)
    9611              :     {
    9612            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9613            0 :                     {
    9614            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9615            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
    9616            0 :                       if (res) return res;
    9617              :                     }
    9618              :                   }
    9619              :                 break;
    9620            0 :               case CFN_BUILT_IN_EXP2L:
    9621            0 :                 if (call_expr_nargs (_p1) == 1)
    9622              :     {
    9623            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9624            0 :                     {
    9625            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9626            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
    9627            0 :                       if (res) return res;
    9628              :                     }
    9629              :                   }
    9630              :                 break;
    9631            0 :               case CFN_BUILT_IN_LOG10:
    9632            0 :                 if (call_expr_nargs (_p1) == 1)
    9633              :     {
    9634            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9635            0 :                     {
    9636            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9637            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
    9638            0 :                       if (res) return res;
    9639              :                     }
    9640              :                   }
    9641              :                 break;
    9642            0 :               case CFN_BUILT_IN_LOG2F:
    9643            0 :                 if (call_expr_nargs (_p1) == 1)
    9644              :     {
    9645            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9646            0 :                     {
    9647            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9648            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
    9649            0 :                       if (res) return res;
    9650              :                     }
    9651              :                   }
    9652              :                 break;
    9653            0 :               case CFN_BUILT_IN_LOG2L:
    9654            0 :                 if (call_expr_nargs (_p1) == 1)
    9655              :     {
    9656            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9657            0 :                     {
    9658            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    9659            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
    9660            0 :                       if (res) return res;
    9661              :                     }
    9662              :                   }
    9663              :                 break;
    9664              :               default:;
    9665              :               }
    9666              :             break;
    9667              :           default:;
    9668              :           }
    9669              :         break;
    9670              :       }
    9671       587334 :     case PLUS_EXPR:
    9672       587334 :       {
    9673       587334 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9674       587334 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9675       587334 :         switch (TREE_CODE (_q21))
    9676              :           {
    9677       475639 :           case INTEGER_CST:
    9678       475639 :             {
    9679       475639 :               switch (TREE_CODE (_p1))
    9680              :                 {
    9681       116543 :                 case INTEGER_CST:
    9682       116543 :                   {
    9683       116543 :                     {
    9684       116543 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    9685       116543 :                       tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR, LE_EXPR);
    9686       116543 :                       if (res) return res;
    9687              :                     }
    9688        56338 :                     break;
    9689              :                   }
    9690              :                 default:;
    9691              :                 }
    9692              :               break;
    9693              :             }
    9694              :           default:;
    9695              :           }
    9696              :         break;
    9697              :       }
    9698        57954 :     case MINUS_EXPR:
    9699        57954 :       {
    9700        57954 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9701        57954 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9702        57954 :         switch (TREE_CODE (_q21))
    9703              :           {
    9704            7 :           case INTEGER_CST:
    9705            7 :             {
    9706            7 :               switch (TREE_CODE (_p1))
    9707              :                 {
    9708            7 :                 case INTEGER_CST:
    9709            7 :                   {
    9710            7 :                     {
    9711            7 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    9712            7 :                       tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, GE_EXPR, LE_EXPR);
    9713            7 :                       if (res) return res;
    9714              :                     }
    9715            0 :                     break;
    9716              :                   }
    9717              :                 default:;
    9718              :                 }
    9719              :               break;
    9720              :             }
    9721        57947 :           default:;
    9722              :           }
    9723        57947 :         switch (TREE_CODE (_q20))
    9724              :           {
    9725         1580 :           case INTEGER_CST:
    9726         1580 :             {
    9727         1580 :               switch (TREE_CODE (_p1))
    9728              :                 {
    9729          547 :                 case INTEGER_CST:
    9730          547 :                   {
    9731          547 :                     {
    9732          547 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    9733          547 :                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    9734          547 :                       if (res) return res;
    9735              :                     }
    9736            0 :                     break;
    9737              :                   }
    9738              :                 default:;
    9739              :                 }
    9740              :               break;
    9741              :             }
    9742              :           default:;
    9743              :           }
    9744              :         break;
    9745              :       }
    9746       225152 :     case CALL_EXPR:
    9747       225152 :       switch (get_call_combined_fn (_p0))
    9748              :         {
    9749            1 :         case CFN_BUILT_IN_CTZ:
    9750            1 :           if (call_expr_nargs (_p0) == 1)
    9751              :     {
    9752            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9753            1 :               switch (TREE_CODE (_p1))
    9754              :                 {
    9755            1 :                 case INTEGER_CST:
    9756            1 :                   {
    9757            1 :                     {
    9758            1 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9759            1 :                       tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZ);
    9760            1 :                       if (res) return res;
    9761              :                     }
    9762            0 :                     break;
    9763              :                   }
    9764              :                 default:;
    9765              :                 }
    9766              :             }
    9767              :           break;
    9768            1 :         case CFN_BUILT_IN_EXP:
    9769            1 :           if (call_expr_nargs (_p0) == 1)
    9770              :     {
    9771            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9772            1 :               switch (TREE_CODE (_p1))
    9773              :                 {
    9774            1 :                 case REAL_CST:
    9775            1 :                   {
    9776            1 :                     {
    9777            1 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9778            1 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
    9779            1 :                       if (res) return res;
    9780              :                     }
    9781            1 :                     break;
    9782              :                   }
    9783              :                 default:;
    9784              :                 }
    9785              :             }
    9786              :           break;
    9787            1 :         case CFN_BUILT_IN_LOG:
    9788            1 :           if (call_expr_nargs (_p0) == 1)
    9789              :     {
    9790            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9791            1 :               switch (TREE_CODE (_p1))
    9792              :                 {
    9793            0 :                 case REAL_CST:
    9794            0 :                   {
    9795            0 :                     {
    9796            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9797            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
    9798            0 :                       if (res) return res;
    9799              :                     }
    9800            0 :                     break;
    9801              :                   }
    9802              :                 default:;
    9803              :                 }
    9804              :             }
    9805              :           break;
    9806            0 :         case CFN_BUILT_IN_EXP10F:
    9807            0 :           if (call_expr_nargs (_p0) == 1)
    9808              :     {
    9809            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9810            0 :               switch (TREE_CODE (_p1))
    9811              :                 {
    9812            0 :                 case REAL_CST:
    9813            0 :                   {
    9814            0 :                     {
    9815            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9816            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
    9817            0 :                       if (res) return res;
    9818              :                     }
    9819            0 :                     break;
    9820              :                   }
    9821              :                 default:;
    9822              :                 }
    9823              :             }
    9824              :           break;
    9825            0 :         case CFN_BUILT_IN_EXP10L:
    9826            0 :           if (call_expr_nargs (_p0) == 1)
    9827              :     {
    9828            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9829            0 :               switch (TREE_CODE (_p1))
    9830              :                 {
    9831            0 :                 case REAL_CST:
    9832            0 :                   {
    9833            0 :                     {
    9834            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9835            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
    9836            0 :                       if (res) return res;
    9837              :                     }
    9838            0 :                     break;
    9839              :                   }
    9840              :                 default:;
    9841              :                 }
    9842              :             }
    9843              :           break;
    9844            0 :         case CFN_BUILT_IN_CTZL:
    9845            0 :           if (call_expr_nargs (_p0) == 1)
    9846              :     {
    9847            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9848            0 :               switch (TREE_CODE (_p1))
    9849              :                 {
    9850            0 :                 case INTEGER_CST:
    9851            0 :                   {
    9852            0 :                     {
    9853            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9854            0 :                       tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZL);
    9855            0 :                       if (res) return res;
    9856              :                     }
    9857            0 :                     break;
    9858              :                   }
    9859              :                 default:;
    9860              :                 }
    9861              :             }
    9862              :           break;
    9863            0 :         case CFN_BUILT_IN_EXP2:
    9864            0 :           if (call_expr_nargs (_p0) == 1)
    9865              :     {
    9866            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9867            0 :               switch (TREE_CODE (_p1))
    9868              :                 {
    9869            0 :                 case REAL_CST:
    9870            0 :                   {
    9871            0 :                     {
    9872            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9873            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
    9874            0 :                       if (res) return res;
    9875              :                     }
    9876            0 :                     break;
    9877              :                   }
    9878              :                 default:;
    9879              :                 }
    9880              :             }
    9881              :           break;
    9882            0 :         case CFN_BUILT_IN_EXPF:
    9883            0 :           if (call_expr_nargs (_p0) == 1)
    9884              :     {
    9885            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9886            0 :               switch (TREE_CODE (_p1))
    9887              :                 {
    9888            0 :                 case REAL_CST:
    9889            0 :                   {
    9890            0 :                     {
    9891            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9892            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
    9893            0 :                       if (res) return res;
    9894              :                     }
    9895            0 :                     break;
    9896              :                   }
    9897              :                 default:;
    9898              :                 }
    9899              :             }
    9900              :           break;
    9901            0 :         case CFN_BUILT_IN_EXPL:
    9902            0 :           if (call_expr_nargs (_p0) == 1)
    9903              :     {
    9904            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9905            0 :               switch (TREE_CODE (_p1))
    9906              :                 {
    9907            0 :                 case REAL_CST:
    9908            0 :                   {
    9909            0 :                     {
    9910            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9911            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
    9912            0 :                       if (res) return res;
    9913              :                     }
    9914            0 :                     break;
    9915              :                   }
    9916              :                 default:;
    9917              :                 }
    9918              :             }
    9919              :           break;
    9920            0 :         case CFN_BUILT_IN_LOG2:
    9921            0 :           if (call_expr_nargs (_p0) == 1)
    9922              :     {
    9923            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9924            0 :               switch (TREE_CODE (_p1))
    9925              :                 {
    9926            0 :                 case REAL_CST:
    9927            0 :                   {
    9928            0 :                     {
    9929            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9930            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
    9931            0 :                       if (res) return res;
    9932              :                     }
    9933            0 :                     break;
    9934              :                   }
    9935              :                 default:;
    9936              :                 }
    9937              :             }
    9938              :           break;
    9939            0 :         case CFN_BUILT_IN_LOGF:
    9940            0 :           if (call_expr_nargs (_p0) == 1)
    9941              :     {
    9942            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9943            0 :               switch (TREE_CODE (_p1))
    9944              :                 {
    9945            0 :                 case REAL_CST:
    9946            0 :                   {
    9947            0 :                     {
    9948            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9949            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
    9950            0 :                       if (res) return res;
    9951              :                     }
    9952            0 :                     break;
    9953              :                   }
    9954              :                 default:;
    9955              :                 }
    9956              :             }
    9957              :           break;
    9958            0 :         case CFN_BUILT_IN_LOGL:
    9959            0 :           if (call_expr_nargs (_p0) == 1)
    9960              :     {
    9961            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9962            0 :               switch (TREE_CODE (_p1))
    9963              :                 {
    9964            0 :                 case REAL_CST:
    9965            0 :                   {
    9966            0 :                     {
    9967            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9968            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
    9969            0 :                       if (res) return res;
    9970              :                     }
    9971            0 :                     break;
    9972              :                   }
    9973              :                 default:;
    9974              :                 }
    9975              :             }
    9976              :           break;
    9977            0 :         case CFN_BUILT_IN_LOG10F:
    9978            0 :           if (call_expr_nargs (_p0) == 1)
    9979              :     {
    9980            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9981            0 :               switch (TREE_CODE (_p1))
    9982              :                 {
    9983            0 :                 case REAL_CST:
    9984            0 :                   {
    9985            0 :                     {
    9986            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9987            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
    9988            0 :                       if (res) return res;
    9989              :                     }
    9990            0 :                     break;
    9991              :                   }
    9992              :                 default:;
    9993              :                 }
    9994              :             }
    9995              :           break;
    9996            0 :         case CFN_BUILT_IN_LOG10L:
    9997            0 :           if (call_expr_nargs (_p0) == 1)
    9998              :     {
    9999            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10000            0 :               switch (TREE_CODE (_p1))
   10001              :                 {
   10002            0 :                 case REAL_CST:
   10003            0 :                   {
   10004            0 :                     {
   10005            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10006            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
   10007            0 :                       if (res) return res;
   10008              :                     }
   10009            0 :                     break;
   10010              :                   }
   10011              :                 default:;
   10012              :                 }
   10013              :             }
   10014              :           break;
   10015            0 :         case CFN_BUILT_IN_CTZIMAX:
   10016            0 :           if (call_expr_nargs (_p0) == 1)
   10017              :     {
   10018            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10019            0 :               switch (TREE_CODE (_p1))
   10020              :                 {
   10021            0 :                 case INTEGER_CST:
   10022            0 :                   {
   10023            0 :                     {
   10024            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10025            0 :                       tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZIMAX);
   10026            0 :                       if (res) return res;
   10027              :                     }
   10028            0 :                     break;
   10029              :                   }
   10030              :                 default:;
   10031              :                 }
   10032              :             }
   10033              :           break;
   10034            0 :         case CFN_CTZ:
   10035            0 :           if (call_expr_nargs (_p0) == 2)
   10036              :     {
   10037            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10038            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10039            0 :               switch (TREE_CODE (_p1))
   10040              :                 {
   10041            0 :                 case INTEGER_CST:
   10042            0 :                   {
   10043            0 :                     {
   10044            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10045            0 :                       tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
   10046            0 :                       if (res) return res;
   10047              :                     }
   10048            0 :                     break;
   10049              :                   }
   10050              :                 default:;
   10051              :                 }
   10052              :             }
   10053            0 :           if (call_expr_nargs (_p0) == 1)
   10054              :     {
   10055            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10056            0 :               switch (TREE_CODE (_p1))
   10057              :                 {
   10058            0 :                 case INTEGER_CST:
   10059            0 :                   {
   10060            0 :                     {
   10061            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10062            0 :                       tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_CTZ);
   10063            0 :                       if (res) return res;
   10064              :                     }
   10065            0 :                     break;
   10066              :                   }
   10067              :                 default:;
   10068              :                 }
   10069              :             }
   10070              :           break;
   10071            0 :         case CFN_EXP:
   10072            0 :           if (call_expr_nargs (_p0) == 1)
   10073              :     {
   10074            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10075            0 :               switch (TREE_CODE (_p1))
   10076              :                 {
   10077            0 :                 case REAL_CST:
   10078            0 :                   {
   10079            0 :                     {
   10080            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10081            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
   10082            0 :                       if (res) return res;
   10083              :                     }
   10084            0 :                     break;
   10085              :                   }
   10086              :                 default:;
   10087              :                 }
   10088              :             }
   10089              :           break;
   10090            0 :         case CFN_LOG:
   10091            0 :           if (call_expr_nargs (_p0) == 1)
   10092              :     {
   10093            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10094            0 :               switch (TREE_CODE (_p1))
   10095              :                 {
   10096            0 :                 case REAL_CST:
   10097            0 :                   {
   10098            0 :                     {
   10099            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10100            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
   10101            0 :                       if (res) return res;
   10102              :                     }
   10103            0 :                     break;
   10104              :                   }
   10105              :                 default:;
   10106              :                 }
   10107              :             }
   10108              :           break;
   10109            0 :         case CFN_EXP2:
   10110            0 :           if (call_expr_nargs (_p0) == 1)
   10111              :     {
   10112            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10113            0 :               switch (TREE_CODE (_p1))
   10114              :                 {
   10115            0 :                 case REAL_CST:
   10116            0 :                   {
   10117            0 :                     {
   10118            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10119            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
   10120            0 :                       if (res) return res;
   10121              :                     }
   10122            0 :                     break;
   10123              :                   }
   10124              :                 default:;
   10125              :                 }
   10126              :             }
   10127              :           break;
   10128            0 :         case CFN_LOG2:
   10129            0 :           if (call_expr_nargs (_p0) == 1)
   10130              :     {
   10131            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10132            0 :               switch (TREE_CODE (_p1))
   10133              :                 {
   10134            0 :                 case REAL_CST:
   10135            0 :                   {
   10136            0 :                     {
   10137            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10138            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
   10139            0 :                       if (res) return res;
   10140              :                     }
   10141            0 :                     break;
   10142              :                   }
   10143              :                 default:;
   10144              :                 }
   10145              :             }
   10146              :           break;
   10147            0 :         case CFN_EXP10:
   10148            0 :           if (call_expr_nargs (_p0) == 1)
   10149              :     {
   10150            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10151            0 :               switch (TREE_CODE (_p1))
   10152              :                 {
   10153            0 :                 case REAL_CST:
   10154            0 :                   {
   10155            0 :                     {
   10156            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10157            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
   10158            0 :                       if (res) return res;
   10159              :                     }
   10160            0 :                     break;
   10161              :                   }
   10162              :                 default:;
   10163              :                 }
   10164              :             }
   10165              :           break;
   10166            0 :         case CFN_BUILT_IN_CTZLL:
   10167            0 :           if (call_expr_nargs (_p0) == 1)
   10168              :     {
   10169            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10170            0 :               switch (TREE_CODE (_p1))
   10171              :                 {
   10172            0 :                 case INTEGER_CST:
   10173            0 :                   {
   10174            0 :                     {
   10175            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10176            0 :                       tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR, CFN_BUILT_IN_CTZLL);
   10177            0 :                       if (res) return res;
   10178              :                     }
   10179            0 :                     break;
   10180              :                   }
   10181              :                 default:;
   10182              :                 }
   10183              :             }
   10184              :           break;
   10185            0 :         case CFN_LOG10:
   10186            0 :           if (call_expr_nargs (_p0) == 1)
   10187              :     {
   10188            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10189            0 :               switch (TREE_CODE (_p1))
   10190              :                 {
   10191            0 :                 case REAL_CST:
   10192            0 :                   {
   10193            0 :                     {
   10194            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10195            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
   10196            0 :                       if (res) return res;
   10197              :                     }
   10198            0 :                     break;
   10199              :                   }
   10200              :                 default:;
   10201              :                 }
   10202              :             }
   10203              :           break;
   10204            0 :         case CFN_BUILT_IN_EXP10:
   10205            0 :           if (call_expr_nargs (_p0) == 1)
   10206              :     {
   10207            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10208            0 :               switch (TREE_CODE (_p1))
   10209              :                 {
   10210            0 :                 case REAL_CST:
   10211            0 :                   {
   10212            0 :                     {
   10213            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10214            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
   10215            0 :                       if (res) return res;
   10216              :                     }
   10217            0 :                     break;
   10218              :                   }
   10219              :                 default:;
   10220              :                 }
   10221              :             }
   10222              :           break;
   10223            0 :         case CFN_BUILT_IN_EXP2F:
   10224            0 :           if (call_expr_nargs (_p0) == 1)
   10225              :     {
   10226            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10227            0 :               switch (TREE_CODE (_p1))
   10228              :                 {
   10229            0 :                 case REAL_CST:
   10230            0 :                   {
   10231            0 :                     {
   10232            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10233            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
   10234            0 :                       if (res) return res;
   10235              :                     }
   10236            0 :                     break;
   10237              :                   }
   10238              :                 default:;
   10239              :                 }
   10240              :             }
   10241              :           break;
   10242            0 :         case CFN_BUILT_IN_EXP2L:
   10243            0 :           if (call_expr_nargs (_p0) == 1)
   10244              :     {
   10245            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10246            0 :               switch (TREE_CODE (_p1))
   10247              :                 {
   10248            0 :                 case REAL_CST:
   10249            0 :                   {
   10250            0 :                     {
   10251            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10252            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
   10253            0 :                       if (res) return res;
   10254              :                     }
   10255            0 :                     break;
   10256              :                   }
   10257              :                 default:;
   10258              :                 }
   10259              :             }
   10260              :           break;
   10261            0 :         case CFN_BUILT_IN_LOG10:
   10262            0 :           if (call_expr_nargs (_p0) == 1)
   10263              :     {
   10264            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10265            0 :               switch (TREE_CODE (_p1))
   10266              :                 {
   10267            0 :                 case REAL_CST:
   10268            0 :                   {
   10269            0 :                     {
   10270            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10271            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
   10272            0 :                       if (res) return res;
   10273              :                     }
   10274            0 :                     break;
   10275              :                   }
   10276              :                 default:;
   10277              :                 }
   10278              :             }
   10279              :           break;
   10280            0 :         case CFN_BUILT_IN_LOG2F:
   10281            0 :           if (call_expr_nargs (_p0) == 1)
   10282              :     {
   10283            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10284            0 :               switch (TREE_CODE (_p1))
   10285              :                 {
   10286            0 :                 case REAL_CST:
   10287            0 :                   {
   10288            0 :                     {
   10289            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10290            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
   10291            0 :                       if (res) return res;
   10292              :                     }
   10293            0 :                     break;
   10294              :                   }
   10295              :                 default:;
   10296              :                 }
   10297              :             }
   10298              :           break;
   10299            0 :         case CFN_BUILT_IN_LOG2L:
   10300            0 :           if (call_expr_nargs (_p0) == 1)
   10301              :     {
   10302            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10303            0 :               switch (TREE_CODE (_p1))
   10304              :                 {
   10305            0 :                 case REAL_CST:
   10306            0 :                   {
   10307            0 :                     {
   10308            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10309            0 :                       tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
   10310            0 :                       if (res) return res;
   10311              :                     }
   10312            0 :                     break;
   10313              :                   }
   10314              :                 default:;
   10315              :                 }
   10316              :             }
   10317              :           break;
   10318              :         default:;
   10319              :         }
   10320              :       break;
   10321              :     default:;
   10322              :     }
   10323              :   return NULL_TREE;
   10324              : }
   10325              : 
   10326              : tree
   10327         1908 : generic_simplify_LROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10328              : {
   10329         1908 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10330         1908 :   if (integer_all_onesp (_p0))
   10331              :     {
   10332            0 :       {
   10333            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10334            0 :         tree res = generic_simplify_553 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10335            0 :         if (res) return res;
   10336              :       }
   10337              :     }
   10338         1908 :   if (integer_zerop (_p1))
   10339              :     {
   10340            0 :       {
   10341            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10342            0 :         tree res = generic_simplify_418 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10343            0 :         if (res) return res;
   10344              :       }
   10345              :     }
   10346         1908 :   if (integer_zerop (_p0))
   10347              :     {
   10348            0 :       {
   10349            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10350            0 :         tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10351            0 :         if (res) return res;
   10352              :       }
   10353              :     }
   10354         1908 :   switch (TREE_CODE (_p1))
   10355              :     {
   10356            0 :     case VECTOR_CST:
   10357            0 :       {
   10358            0 :         {
   10359            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10360            0 :           tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10361            0 :           if (res) return res;
   10362              :         }
   10363            0 :         break;
   10364              :       }
   10365            0 :     case CONSTRUCTOR:
   10366            0 :       {
   10367            0 :         {
   10368            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10369            0 :           tree res = generic_simplify_421 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10370            0 :           if (res) return res;
   10371              :         }
   10372            0 :         break;
   10373              :       }
   10374         1238 :     case INTEGER_CST:
   10375         1238 :       {
   10376         1238 :         {
   10377         1238 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10378         1238 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1750;
   10379         1238 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1750;
   10380         1238 :           {
   10381         1238 :             tree res_op0;
   10382         1238 :             res_op0 = captures[0];
   10383         1238 :             tree res_op1;
   10384         1238 :             res_op1 =  const_binop (MINUS_EXPR, TREE_TYPE (captures[1]),
   10385         1238 :  build_int_cst (TREE_TYPE (captures[1]),
   10386         1238 :  element_precision (type)), captures[1]);
   10387         1238 :             tree _r;
   10388         1238 :             _r = fold_build2_loc (loc, RROTATE_EXPR, type, res_op0, res_op1);
   10389         1238 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
   10390         1238 :             return _r;
   10391              :           }
   10392            0 : next_after_fail1750:;
   10393              :         }
   10394            0 :         break;
   10395              :       }
   10396            0 :     case MINUS_EXPR:
   10397            0 :       {
   10398            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10399            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10400            0 :         switch (TREE_CODE (_q30))
   10401              :           {
   10402            0 :           case INTEGER_CST:
   10403            0 :             {
   10404            0 :               {
   10405            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
   10406            0 :                 tree res = generic_simplify_554 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR);
   10407            0 :                 if (res) return res;
   10408              :               }
   10409            0 :               break;
   10410              :             }
   10411              :           default:;
   10412              :           }
   10413              :         break;
   10414              :       }
   10415          670 :     default:;
   10416              :     }
   10417          670 :   switch (TREE_CODE (_p0))
   10418              :     {
   10419            0 :     case LROTATE_EXPR:
   10420            0 :       {
   10421            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10422            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10423            0 :         switch (TREE_CODE (_q21))
   10424              :           {
   10425            0 :           case INTEGER_CST:
   10426            0 :             {
   10427            0 :               switch (TREE_CODE (_p1))
   10428              :                 {
   10429            0 :                 case INTEGER_CST:
   10430            0 :                   {
   10431            0 :                     {
   10432            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   10433            0 :                       tree res = generic_simplify_422 (loc, type, _p0, _p1, captures, LROTATE_EXPR);
   10434            0 :                       if (res) return res;
   10435              :                     }
   10436            0 :                     break;
   10437              :                   }
   10438              :                 default:;
   10439              :                 }
   10440              :               break;
   10441              :             }
   10442              :           default:;
   10443              :           }
   10444              :         break;
   10445              :       }
   10446              :     default:;
   10447              :     }
   10448              :   return NULL_TREE;
   10449              : }
   10450              : 
   10451              : tree
   10452         2784 : generic_simplify_RROTATE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10453              : {
   10454         2784 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10455         2784 :   if (integer_all_onesp (_p0))
   10456              :     {
   10457            0 :       {
   10458            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10459            0 :         tree res = generic_simplify_553 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
   10460            0 :         if (res) return res;
   10461              :       }
   10462              :     }
   10463         2784 :   if (integer_zerop (_p1))
   10464              :     {
   10465            1 :       {
   10466            1 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10467            1 :         tree res = generic_simplify_418 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
   10468            1 :         if (res) return res;
   10469              :       }
   10470              :     }
   10471         2783 :   if (integer_zerop (_p0))
   10472              :     {
   10473            0 :       {
   10474            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10475            0 :         tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
   10476            0 :         if (res) return res;
   10477              :       }
   10478              :     }
   10479         2783 :   switch (TREE_CODE (_p1))
   10480              :     {
   10481            0 :     case VECTOR_CST:
   10482            0 :       {
   10483            0 :         {
   10484            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10485            0 :           tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
   10486            0 :           if (res) return res;
   10487              :         }
   10488            0 :         break;
   10489              :       }
   10490            0 :     case CONSTRUCTOR:
   10491            0 :       {
   10492            0 :         {
   10493            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10494            0 :           tree res = generic_simplify_421 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
   10495            0 :           if (res) return res;
   10496              :         }
   10497            0 :         break;
   10498              :       }
   10499            0 :     case MINUS_EXPR:
   10500            0 :       {
   10501            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10502            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10503            0 :         switch (TREE_CODE (_q30))
   10504              :           {
   10505            0 :           case INTEGER_CST:
   10506            0 :             {
   10507            0 :               {
   10508            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
   10509            0 :                 tree res = generic_simplify_554 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR);
   10510            0 :                 if (res) return res;
   10511              :               }
   10512            0 :               break;
   10513              :             }
   10514              :           default:;
   10515              :           }
   10516              :         break;
   10517              :       }
   10518         2783 :     default:;
   10519              :     }
   10520         2783 :   switch (TREE_CODE (_p0))
   10521              :     {
   10522            0 :     case RROTATE_EXPR:
   10523            0 :       {
   10524            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10525            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10526            0 :         switch (TREE_CODE (_q21))
   10527              :           {
   10528            0 :           case INTEGER_CST:
   10529            0 :             {
   10530            0 :               switch (TREE_CODE (_p1))
   10531              :                 {
   10532            0 :                 case INTEGER_CST:
   10533            0 :                   {
   10534            0 :                     {
   10535            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   10536            0 :                       tree res = generic_simplify_422 (loc, type, _p0, _p1, captures, RROTATE_EXPR);
   10537            0 :                       if (res) return res;
   10538              :                     }
   10539            0 :                     break;
   10540              :                   }
   10541              :                 default:;
   10542              :                 }
   10543              :               break;
   10544              :             }
   10545              :           default:;
   10546              :           }
   10547              :         break;
   10548              :       }
   10549              :     default:;
   10550              :     }
   10551              :   return NULL_TREE;
   10552              : }
   10553              : 
   10554              : tree
   10555       569150 : generic_simplify_COMPLEX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10556              : {
   10557       569150 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10558       569150 :   switch (TREE_CODE (_p0))
   10559              :     {
   10560           40 :     case REALPART_EXPR:
   10561           40 :       {
   10562           40 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10563           40 :         switch (TREE_CODE (_p1))
   10564              :           {
   10565           30 :           case IMAGPART_EXPR:
   10566           30 :             {
   10567           30 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10568           30 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   10569              :                 {
   10570           30 :                   {
   10571           30 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10572           30 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1751;
   10573           30 :                     {
   10574           30 :                       tree _r;
   10575           30 :                       _r = captures[0];
   10576           30 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
   10577           30 :                       return _r;
   10578              :                     }
   10579            0 : next_after_fail1751:;
   10580              :                   }
   10581              :                 }
   10582              :               break;
   10583              :             }
   10584              :           default:;
   10585              :           }
   10586              :         break;
   10587              :       }
   10588              :     default:;
   10589              :     }
   10590              :   return NULL_TREE;
   10591              : }
   10592              : 
   10593              : tree
   10594       737730 : generic_simplify_UNORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10595              : {
   10596       737730 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10597       737730 :   switch (TREE_CODE (_p0))
   10598              :     {
   10599            0 :     case VEC_COND_EXPR:
   10600            0 :       {
   10601            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10602            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10603            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10604            0 :         switch (TREE_CODE (_p1))
   10605              :           {
   10606            0 :           case VEC_COND_EXPR:
   10607            0 :             {
   10608            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   10609            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   10610            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   10611            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10612              :                 {
   10613            0 :                   {
   10614            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   10615            0 :                     if (VECTOR_TYPE_P (type)
   10616            0 :  && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
   10617            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10618            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10619              :  || (optimize_vectors_before_lowering_p ()
   10620            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10621              : )
   10622              :                       {
   10623            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1752;
   10624            0 :                         {
   10625            0 :                           tree res_op0;
   10626            0 :                           res_op0 = captures[1];
   10627            0 :                           tree res_op1;
   10628            0 :                           {
   10629            0 :                             tree _o1[2], _r1;
   10630            0 :                             _o1[0] = captures[2];
   10631            0 :                             _o1[1] = captures[5];
   10632            0 :                             _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   10633            0 :                             if (EXPR_P (_r1))
   10634            0 :                               goto next_after_fail1752;
   10635            0 :                             res_op1 = _r1;
   10636              :                           }
   10637            0 :                           tree res_op2;
   10638            0 :                           {
   10639            0 :                             tree _o1[2], _r1;
   10640            0 :                             _o1[0] = captures[3];
   10641            0 :                             _o1[1] = captures[6];
   10642            0 :                             _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   10643            0 :                             if (EXPR_P (_r1))
   10644            0 :                               goto next_after_fail1752;
   10645            0 :                             res_op2 = _r1;
   10646              :                           }
   10647            0 :                           tree _r;
   10648            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10649            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
   10650            0 :                           return _r;
   10651              :                         }
   10652            0 : next_after_fail1752:;
   10653              :                       }
   10654              :                   }
   10655              :                 }
   10656              :               break;
   10657              :             }
   10658            0 :           default:;
   10659              :           }
   10660            0 :         {
   10661            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10662            0 :           if (VECTOR_TYPE_P (type)
   10663            0 :  && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
   10664            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10665            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10666              :  || (optimize_vectors_before_lowering_p ()
   10667            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10668              : )
   10669              :             {
   10670            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1753;
   10671            0 :               {
   10672            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1753;
   10673            0 :                 tree res_op0;
   10674            0 :                 res_op0 = captures[1];
   10675            0 :                 tree res_op1;
   10676            0 :                 {
   10677            0 :                   tree _o1[2], _r1;
   10678            0 :                   _o1[0] = captures[2];
   10679            0 :                   _o1[1] = unshare_expr (captures[4]);
   10680            0 :                   _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   10681            0 :                   if (EXPR_P (_r1))
   10682            0 :                     goto next_after_fail1753;
   10683            0 :                   res_op1 = _r1;
   10684              :                 }
   10685            0 :                 tree res_op2;
   10686            0 :                 {
   10687            0 :                   tree _o1[2], _r1;
   10688            0 :                   _o1[0] = captures[3];
   10689            0 :                   _o1[1] = captures[4];
   10690            0 :                   _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   10691            0 :                   if (EXPR_P (_r1))
   10692            0 :                     goto next_after_fail1753;
   10693            0 :                   res_op2 = _r1;
   10694              :                 }
   10695            0 :                 tree _r;
   10696            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10697            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
   10698            0 :                 return _r;
   10699              :               }
   10700            0 : next_after_fail1753:;
   10701              :             }
   10702              :         }
   10703            0 :         break;
   10704              :       }
   10705       737730 :     default:;
   10706              :     }
   10707       737730 :   switch (TREE_CODE (_p1))
   10708              :     {
   10709            0 :     case VEC_COND_EXPR:
   10710            0 :       {
   10711            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10712            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10713            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10714            0 :         {
   10715            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10716            0 :           if (VECTOR_TYPE_P (type)
   10717            0 :  && (TREE_CODE_CLASS (UNORDERED_EXPR) != tcc_comparison
   10718            0 :  || types_match (type, TREE_TYPE (captures[3]))
   10719            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10720              :  || (optimize_vectors_before_lowering_p ()
   10721            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10722              : )
   10723              :             {
   10724            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1754;
   10725            0 :               {
   10726            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1754;
   10727            0 :                 tree res_op0;
   10728            0 :                 res_op0 = captures[2];
   10729            0 :                 tree res_op1;
   10730            0 :                 {
   10731            0 :                   tree _o1[2], _r1;
   10732            0 :                   _o1[0] = unshare_expr (captures[0]);
   10733            0 :                   _o1[1] = captures[3];
   10734            0 :                   _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   10735            0 :                   if (EXPR_P (_r1))
   10736            0 :                     goto next_after_fail1754;
   10737            0 :                   res_op1 = _r1;
   10738              :                 }
   10739            0 :                 tree res_op2;
   10740            0 :                 {
   10741            0 :                   tree _o1[2], _r1;
   10742            0 :                   _o1[0] = captures[0];
   10743            0 :                   _o1[1] = captures[4];
   10744            0 :                   _r1 = fold_build2_loc (loc, UNORDERED_EXPR, type, _o1[0], _o1[1]);
   10745            0 :                   if (EXPR_P (_r1))
   10746            0 :                     goto next_after_fail1754;
   10747            0 :                   res_op2 = _r1;
   10748              :                 }
   10749            0 :                 tree _r;
   10750            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10751            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
   10752            0 :                 return _r;
   10753              :               }
   10754            0 : next_after_fail1754:;
   10755              :             }
   10756              :         }
   10757            0 :         break;
   10758              :       }
   10759       737730 :     default:;
   10760              :     }
   10761       737730 :   switch (TREE_CODE (_p0))
   10762              :     {
   10763            0 :     case FLOAT_EXPR:
   10764            0 :       {
   10765            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10766            0 :         switch (TREE_CODE (_p1))
   10767              :           {
   10768            0 :           case FLOAT_EXPR:
   10769            0 :             {
   10770            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10771            0 :               {
   10772            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   10773            0 :                 tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
   10774            0 :                 if (res) return res;
   10775              :               }
   10776            0 :               break;
   10777              :             }
   10778              :           default:;
   10779              :           }
   10780              :         break;
   10781              :       }
   10782           18 :     case NEGATE_EXPR:
   10783           18 :       {
   10784           18 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10785           18 :         switch (TREE_CODE (_p1))
   10786              :           {
   10787           18 :           case NEGATE_EXPR:
   10788           18 :             {
   10789           18 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10790           18 :               {
   10791           18 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10792           18 :                 tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
   10793           18 :                 if (res) return res;
   10794              :               }
   10795            0 :               break;
   10796              :             }
   10797            0 :           default:;
   10798              :           }
   10799            0 :       if (CONSTANT_CLASS_P (_p1))
   10800              :         {
   10801            0 :           {
   10802            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10803            0 :             tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, UNORDERED_EXPR);
   10804            0 :             if (res) return res;
   10805              :           }
   10806              :         }
   10807              :         break;
   10808              :       }
   10809       737712 :     default:;
   10810              :     }
   10811       737712 :   switch (TREE_CODE (_p1))
   10812              :     {
   10813          519 :     case REAL_CST:
   10814          519 :       {
   10815          519 :         {
   10816          519 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10817          519 :           tree res = generic_simplify_560 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
   10818          519 :           if (res) return res;
   10819              :         }
   10820          519 :         break;
   10821              :       }
   10822       737712 :     default:;
   10823              :     }
   10824       737712 :   {
   10825       737712 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10826       737712 :     if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
   10827              : )
   10828              :       {
   10829            0 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1755;
   10830            0 :         {
   10831            0 :           tree _r;
   10832            0 :           _r =  constant_boolean_node (true, type);
   10833            0 :           if (TREE_SIDE_EFFECTS (captures[0]))
   10834            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   10835            0 :           if (TREE_SIDE_EFFECTS (captures[1]))
   10836            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10837            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
   10838            0 :           return _r;
   10839              :         }
   10840            0 : next_after_fail1755:;
   10841              :       }
   10842              :     else
   10843              :       {
   10844       737712 :         if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
   10845              : )
   10846              :           {
   10847           35 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1756;
   10848           35 :             {
   10849           35 :               tree _r;
   10850           35 :               _r =  constant_boolean_node (false, type);
   10851           35 :               if (TREE_SIDE_EFFECTS (captures[0]))
   10852            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   10853           35 :               if (TREE_SIDE_EFFECTS (captures[1]))
   10854            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10855           35 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1031, __FILE__, __LINE__, true);
   10856           35 :               return _r;
   10857              :             }
   10858            0 : next_after_fail1756:;
   10859              :           }
   10860              :       }
   10861              :   }
   10862       737677 :   return NULL_TREE;
   10863              : }
   10864              : 
   10865              : tree
   10866       702480 : generic_simplify_UNLT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10867              : {
   10868       702480 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10869       702480 :   switch (TREE_CODE (_p0))
   10870              :     {
   10871            0 :     case VEC_COND_EXPR:
   10872            0 :       {
   10873            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10874            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10875            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10876            0 :         switch (TREE_CODE (_p1))
   10877              :           {
   10878            0 :           case VEC_COND_EXPR:
   10879            0 :             {
   10880            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   10881            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   10882            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   10883            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10884              :                 {
   10885            0 :                   {
   10886            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   10887            0 :                     if (VECTOR_TYPE_P (type)
   10888            0 :  && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
   10889            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10890            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10891              :  || (optimize_vectors_before_lowering_p ()
   10892            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10893              : )
   10894              :                       {
   10895            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1762;
   10896            0 :                         {
   10897            0 :                           tree res_op0;
   10898            0 :                           res_op0 = captures[1];
   10899            0 :                           tree res_op1;
   10900            0 :                           {
   10901            0 :                             tree _o1[2], _r1;
   10902            0 :                             _o1[0] = captures[2];
   10903            0 :                             _o1[1] = captures[5];
   10904            0 :                             _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
   10905            0 :                             if (EXPR_P (_r1))
   10906            0 :                               goto next_after_fail1762;
   10907            0 :                             res_op1 = _r1;
   10908              :                           }
   10909            0 :                           tree res_op2;
   10910            0 :                           {
   10911            0 :                             tree _o1[2], _r1;
   10912            0 :                             _o1[0] = captures[3];
   10913            0 :                             _o1[1] = captures[6];
   10914            0 :                             _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
   10915            0 :                             if (EXPR_P (_r1))
   10916            0 :                               goto next_after_fail1762;
   10917            0 :                             res_op2 = _r1;
   10918              :                           }
   10919            0 :                           tree _r;
   10920            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10921            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
   10922            0 :                           return _r;
   10923              :                         }
   10924            0 : next_after_fail1762:;
   10925              :                       }
   10926              :                   }
   10927              :                 }
   10928              :               break;
   10929              :             }
   10930            0 :           default:;
   10931              :           }
   10932            0 :         {
   10933            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10934            0 :           if (VECTOR_TYPE_P (type)
   10935            0 :  && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
   10936            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10937            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10938              :  || (optimize_vectors_before_lowering_p ()
   10939            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10940              : )
   10941              :             {
   10942            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1763;
   10943            0 :               {
   10944            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1763;
   10945            0 :                 tree res_op0;
   10946            0 :                 res_op0 = captures[1];
   10947            0 :                 tree res_op1;
   10948            0 :                 {
   10949            0 :                   tree _o1[2], _r1;
   10950            0 :                   _o1[0] = captures[2];
   10951            0 :                   _o1[1] = unshare_expr (captures[4]);
   10952            0 :                   _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
   10953            0 :                   if (EXPR_P (_r1))
   10954            0 :                     goto next_after_fail1763;
   10955            0 :                   res_op1 = _r1;
   10956              :                 }
   10957            0 :                 tree res_op2;
   10958            0 :                 {
   10959            0 :                   tree _o1[2], _r1;
   10960            0 :                   _o1[0] = captures[3];
   10961            0 :                   _o1[1] = captures[4];
   10962            0 :                   _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
   10963            0 :                   if (EXPR_P (_r1))
   10964            0 :                     goto next_after_fail1763;
   10965            0 :                   res_op2 = _r1;
   10966              :                 }
   10967            0 :                 tree _r;
   10968            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10969            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
   10970            0 :                 return _r;
   10971              :               }
   10972            0 : next_after_fail1763:;
   10973              :             }
   10974              :         }
   10975            0 :         break;
   10976              :       }
   10977       702480 :     default:;
   10978              :     }
   10979       702480 :   switch (TREE_CODE (_p1))
   10980              :     {
   10981            0 :     case VEC_COND_EXPR:
   10982            0 :       {
   10983            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10984            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10985            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10986            0 :         {
   10987            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10988            0 :           if (VECTOR_TYPE_P (type)
   10989            0 :  && (TREE_CODE_CLASS (UNLT_EXPR) != tcc_comparison
   10990            0 :  || types_match (type, TREE_TYPE (captures[3]))
   10991            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10992              :  || (optimize_vectors_before_lowering_p ()
   10993            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10994              : )
   10995              :             {
   10996            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1764;
   10997            0 :               {
   10998            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1764;
   10999            0 :                 tree res_op0;
   11000            0 :                 res_op0 = captures[2];
   11001            0 :                 tree res_op1;
   11002            0 :                 {
   11003            0 :                   tree _o1[2], _r1;
   11004            0 :                   _o1[0] = unshare_expr (captures[0]);
   11005            0 :                   _o1[1] = captures[3];
   11006            0 :                   _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
   11007            0 :                   if (EXPR_P (_r1))
   11008            0 :                     goto next_after_fail1764;
   11009            0 :                   res_op1 = _r1;
   11010              :                 }
   11011            0 :                 tree res_op2;
   11012            0 :                 {
   11013            0 :                   tree _o1[2], _r1;
   11014            0 :                   _o1[0] = captures[0];
   11015            0 :                   _o1[1] = captures[4];
   11016            0 :                   _r1 = fold_build2_loc (loc, UNLT_EXPR, type, _o1[0], _o1[1]);
   11017            0 :                   if (EXPR_P (_r1))
   11018            0 :                     goto next_after_fail1764;
   11019            0 :                   res_op2 = _r1;
   11020              :                 }
   11021            0 :                 tree _r;
   11022            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11023            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
   11024            0 :                 return _r;
   11025              :               }
   11026            0 : next_after_fail1764:;
   11027              :             }
   11028              :         }
   11029            0 :         break;
   11030              :       }
   11031       702480 :     default:;
   11032              :     }
   11033       702480 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11034              :     {
   11035            0 :       {
   11036            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   11037            0 :         tree res = generic_simplify_561 (loc, type, _p0, _p1, captures, UNLT_EXPR);
   11038            0 :         if (res) return res;
   11039              :       }
   11040              :     }
   11041       702480 :   switch (TREE_CODE (_p0))
   11042              :     {
   11043          283 :     case FLOAT_EXPR:
   11044          283 :       {
   11045          283 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11046          283 :         switch (TREE_CODE (_p1))
   11047              :           {
   11048            0 :           case FLOAT_EXPR:
   11049            0 :             {
   11050            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11051            0 :               {
   11052            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   11053            0 :                 tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, UNLT_EXPR, LT_EXPR);
   11054            0 :                 if (res) return res;
   11055              :               }
   11056            0 :               break;
   11057              :             }
   11058              :           default:;
   11059              :           }
   11060              :         break;
   11061              :       }
   11062            0 :     case NEGATE_EXPR:
   11063            0 :       {
   11064            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11065            0 :         switch (TREE_CODE (_p1))
   11066              :           {
   11067            0 :           case NEGATE_EXPR:
   11068            0 :             {
   11069            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11070            0 :               {
   11071            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   11072            0 :                 tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
   11073            0 :                 if (res) return res;
   11074              :               }
   11075            0 :               break;
   11076              :             }
   11077            0 :           default:;
   11078              :           }
   11079            0 :       if (CONSTANT_CLASS_P (_p1))
   11080              :         {
   11081            0 :           {
   11082            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   11083            0 :             tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNLT_EXPR, UNGT_EXPR);
   11084            0 :             if (res) return res;
   11085              :           }
   11086              :         }
   11087              :         break;
   11088              :       }
   11089       702480 :     default:;
   11090              :     }
   11091       702480 :   switch (TREE_CODE (_p1))
   11092              :     {
   11093       352666 :     case REAL_CST:
   11094       352666 :       {
   11095       352666 :         {
   11096       352666 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11097       352666 :           tree res = generic_simplify_560 (loc, type, _p0, _p1, captures, UNLT_EXPR);
   11098       352666 :           if (res) return res;
   11099              :         }
   11100       352664 :         break;
   11101              :       }
   11102              :     default:;
   11103              :     }
   11104              :   return NULL_TREE;
   11105              : }
   11106              : 
   11107              : tree
   11108           79 : generic_simplify_LTGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   11109              : {
   11110           79 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11111           79 :   switch (TREE_CODE (_p0))
   11112              :     {
   11113            0 :     case VEC_COND_EXPR:
   11114            0 :       {
   11115            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11116            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11117            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11118            0 :         switch (TREE_CODE (_p1))
   11119              :           {
   11120            0 :           case VEC_COND_EXPR:
   11121            0 :             {
   11122            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   11123            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   11124            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   11125            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   11126              :                 {
   11127            0 :                   {
   11128            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   11129            0 :                     if (VECTOR_TYPE_P (type)
   11130            0 :  && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
   11131            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11132            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11133              :  || (optimize_vectors_before_lowering_p ()
   11134            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11135              : )
   11136              :                       {
   11137            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1777;
   11138            0 :                         {
   11139            0 :                           tree res_op0;
   11140            0 :                           res_op0 = captures[1];
   11141            0 :                           tree res_op1;
   11142            0 :                           {
   11143            0 :                             tree _o1[2], _r1;
   11144            0 :                             _o1[0] = captures[2];
   11145            0 :                             _o1[1] = captures[5];
   11146            0 :                             _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11147            0 :                             if (EXPR_P (_r1))
   11148            0 :                               goto next_after_fail1777;
   11149            0 :                             res_op1 = _r1;
   11150              :                           }
   11151            0 :                           tree res_op2;
   11152            0 :                           {
   11153            0 :                             tree _o1[2], _r1;
   11154            0 :                             _o1[0] = captures[3];
   11155            0 :                             _o1[1] = captures[6];
   11156            0 :                             _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11157            0 :                             if (EXPR_P (_r1))
   11158            0 :                               goto next_after_fail1777;
   11159            0 :                             res_op2 = _r1;
   11160              :                           }
   11161            0 :                           tree _r;
   11162            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11163            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
   11164            0 :                           return _r;
   11165              :                         }
   11166            0 : next_after_fail1777:;
   11167              :                       }
   11168              :                   }
   11169              :                 }
   11170              :               break;
   11171              :             }
   11172            0 :           default:;
   11173              :           }
   11174            0 :         {
   11175            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   11176            0 :           if (VECTOR_TYPE_P (type)
   11177            0 :  && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
   11178            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11179            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11180              :  || (optimize_vectors_before_lowering_p ()
   11181            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11182              : )
   11183              :             {
   11184            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1778;
   11185            0 :               {
   11186            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1778;
   11187            0 :                 tree res_op0;
   11188            0 :                 res_op0 = captures[1];
   11189            0 :                 tree res_op1;
   11190            0 :                 {
   11191            0 :                   tree _o1[2], _r1;
   11192            0 :                   _o1[0] = captures[2];
   11193            0 :                   _o1[1] = unshare_expr (captures[4]);
   11194            0 :                   _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11195            0 :                   if (EXPR_P (_r1))
   11196            0 :                     goto next_after_fail1778;
   11197            0 :                   res_op1 = _r1;
   11198              :                 }
   11199            0 :                 tree res_op2;
   11200            0 :                 {
   11201            0 :                   tree _o1[2], _r1;
   11202            0 :                   _o1[0] = captures[3];
   11203            0 :                   _o1[1] = captures[4];
   11204            0 :                   _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11205            0 :                   if (EXPR_P (_r1))
   11206            0 :                     goto next_after_fail1778;
   11207            0 :                   res_op2 = _r1;
   11208              :                 }
   11209            0 :                 tree _r;
   11210            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11211            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
   11212            0 :                 return _r;
   11213              :               }
   11214            0 : next_after_fail1778:;
   11215              :             }
   11216              :         }
   11217            0 :         break;
   11218              :       }
   11219           79 :     default:;
   11220              :     }
   11221           79 :   switch (TREE_CODE (_p1))
   11222              :     {
   11223            0 :     case VEC_COND_EXPR:
   11224            0 :       {
   11225            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11226            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   11227            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   11228            0 :         {
   11229            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   11230            0 :           if (VECTOR_TYPE_P (type)
   11231            0 :  && (TREE_CODE_CLASS (LTGT_EXPR) != tcc_comparison
   11232            0 :  || types_match (type, TREE_TYPE (captures[3]))
   11233            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   11234              :  || (optimize_vectors_before_lowering_p ()
   11235            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   11236              : )
   11237              :             {
   11238            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1779;
   11239            0 :               {
   11240            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1779;
   11241            0 :                 tree res_op0;
   11242            0 :                 res_op0 = captures[2];
   11243            0 :                 tree res_op1;
   11244            0 :                 {
   11245            0 :                   tree _o1[2], _r1;
   11246            0 :                   _o1[0] = unshare_expr (captures[0]);
   11247            0 :                   _o1[1] = captures[3];
   11248            0 :                   _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11249            0 :                   if (EXPR_P (_r1))
   11250            0 :                     goto next_after_fail1779;
   11251            0 :                   res_op1 = _r1;
   11252              :                 }
   11253            0 :                 tree res_op2;
   11254            0 :                 {
   11255            0 :                   tree _o1[2], _r1;
   11256            0 :                   _o1[0] = captures[0];
   11257            0 :                   _o1[1] = captures[4];
   11258            0 :                   _r1 = fold_build2_loc (loc, LTGT_EXPR, type, _o1[0], _o1[1]);
   11259            0 :                   if (EXPR_P (_r1))
   11260            0 :                     goto next_after_fail1779;
   11261            0 :                   res_op2 = _r1;
   11262              :                 }
   11263            0 :                 tree _r;
   11264            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11265            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
   11266            0 :                 return _r;
   11267              :               }
   11268            0 : next_after_fail1779:;
   11269              :             }
   11270              :         }
   11271            0 :         break;
   11272              :       }
   11273           79 :     default:;
   11274              :     }
   11275           79 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11276              :     {
   11277            2 :       {
   11278            2 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   11279            2 :         if (!flag_trapping_math || !tree_expr_maybe_nan_p (captures[0])
   11280              : )
   11281              :           {
   11282            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1780;
   11283            0 :             {
   11284            0 :               tree _r;
   11285            0 :               _r =  constant_boolean_node (false, type);
   11286            0 :               if (TREE_SIDE_EFFECTS (captures[0]))
   11287            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11288            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1034, __FILE__, __LINE__, true);
   11289            0 :               return _r;
   11290              :             }
   11291            0 : next_after_fail1780:;
   11292              :           }
   11293              :       }
   11294              :     }
   11295           79 :   switch (TREE_CODE (_p0))
   11296              :     {
   11297            0 :     case FLOAT_EXPR:
   11298            0 :       {
   11299            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11300            0 :         switch (TREE_CODE (_p1))
   11301              :           {
   11302            0 :           case FLOAT_EXPR:
   11303            0 :             {
   11304            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11305            0 :               {
   11306            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   11307            0 :                 tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, LTGT_EXPR, NE_EXPR);
   11308            0 :                 if (res) return res;
   11309              :               }
   11310            0 :               break;
   11311              :             }
   11312              :           default:;
   11313              :           }
   11314              :         break;
   11315              :       }
   11316            0 :     case NEGATE_EXPR:
   11317            0 :       {
   11318            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11319            0 :         switch (TREE_CODE (_p1))
   11320              :           {
   11321            0 :           case NEGATE_EXPR:
   11322            0 :             {
   11323            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11324            0 :               {
   11325            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   11326            0 :                 tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
   11327            0 :                 if (res) return res;
   11328              :               }
   11329            0 :               break;
   11330              :             }
   11331            0 :           default:;
   11332              :           }
   11333            0 :       if (CONSTANT_CLASS_P (_p1))
   11334              :         {
   11335            0 :           {
   11336            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   11337            0 :             tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LTGT_EXPR, LTGT_EXPR);
   11338            0 :             if (res) return res;
   11339              :           }
   11340              :         }
   11341              :         break;
   11342              :       }
   11343           79 :     default:;
   11344              :     }
   11345           79 :   switch (TREE_CODE (_p1))
   11346              :     {
   11347            2 :     case REAL_CST:
   11348            2 :       {
   11349            2 :         {
   11350            2 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11351            2 :           tree res = generic_simplify_560 (loc, type, _p0, _p1, captures, LTGT_EXPR);
   11352            2 :           if (res) return res;
   11353              :         }
   11354            2 :         break;
   11355              :       }
   11356              :     default:;
   11357              :     }
   11358              :   return NULL_TREE;
   11359              : }
   11360              : 
   11361              : tree
   11362       763724 : generic_simplify_BIT_FIELD_REF (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
   11363              : {
   11364       763724 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11365       763724 :   switch (TREE_CODE (_p0))
   11366              :     {
   11367            8 :     case BIT_FIELD_REF:
   11368            8 :       {
   11369            8 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11370            8 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11371            8 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11372            8 :         {
   11373            8 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   11374            8 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1947;
   11375            8 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1947;
   11376            8 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1947;
   11377            8 :           {
   11378            8 :             tree res_op0;
   11379            8 :             res_op0 = captures[0];
   11380            8 :             tree res_op1;
   11381            8 :             res_op1 = captures[3];
   11382            8 :             tree res_op2;
   11383            8 :             res_op2 =  const_binop (PLUS_EXPR, bitsizetype, captures[2], captures[4]);
   11384            8 :             tree _r;
   11385            8 :             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11386            8 :             if (TREE_SIDE_EFFECTS (captures[1]))
   11387            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11388            8 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1077, __FILE__, __LINE__, true);
   11389            8 :             return _r;
   11390              :           }
   11391            0 : next_after_fail1947:;
   11392              :         }
   11393            0 :         break;
   11394              :       }
   11395            3 :     case VIEW_CONVERT_EXPR:
   11396            3 :       {
   11397            3 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11398            3 :         {
   11399            3 :           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
   11400            6 :           if (! INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11401            6 :  || type_has_mode_precision_p (TREE_TYPE (captures[0]))
   11402              : )
   11403              :             {
   11404            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1948;
   11405            0 :               {
   11406            0 :                 tree res_op0;
   11407            0 :                 res_op0 = captures[0];
   11408            0 :                 tree res_op1;
   11409            0 :                 res_op1 = captures[1];
   11410            0 :                 tree res_op2;
   11411            0 :                 res_op2 = captures[2];
   11412            0 :                 tree _r;
   11413            0 :                 _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11414            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1078, __FILE__, __LINE__, true);
   11415            0 :                 return _r;
   11416              :               }
   11417            0 : next_after_fail1948:;
   11418              :             }
   11419              :         }
   11420            3 :         break;
   11421              :       }
   11422       763716 :     default:;
   11423              :     }
   11424       763716 :   if (integer_zerop (_p2))
   11425              :     {
   11426       243473 :       {
   11427       243473 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11428       243473 :         if (tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (captures[0])))
   11429              : )
   11430              :           {
   11431         2589 :             if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1949;
   11432         2589 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1949;
   11433         2589 :             {
   11434         2589 :               tree res_op0;
   11435         2589 :               res_op0 = captures[0];
   11436         2589 :               tree _r;
   11437         2589 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11438         2589 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11439            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11440         2589 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1079, __FILE__, __LINE__, true);
   11441         2589 :               return _r;
   11442              :             }
   11443       240884 : next_after_fail1949:;
   11444              :           }
   11445              :       }
   11446              :     }
   11447       761127 :   {
   11448       761127 :     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11449       761127 :     if (TREE_CODE (TREE_TYPE (captures[0])) == COMPLEX_TYPE
   11450       761127 :  && tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11451              : )
   11452              :       {
   11453            2 :         if (integer_zerop (captures[2])
   11454              : )
   11455              :           {
   11456            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1950;
   11457            0 :             {
   11458            0 :               tree res_op0;
   11459            0 :               {
   11460            0 :                 tree _o1[1], _r1;
   11461            0 :                 _o1[0] = captures[0];
   11462            0 :                 _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11463            0 :                 res_op0 = _r1;
   11464              :               }
   11465            0 :               tree _r;
   11466            0 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11467            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11468            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11469            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11470            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11471            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1080, __FILE__, __LINE__, true);
   11472            0 :               return _r;
   11473              :             }
   11474            0 : next_after_fail1950:;
   11475              :           }
   11476              :         else
   11477              :           {
   11478            2 :             if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11479              : )
   11480              :               {
   11481            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1951;
   11482            0 :                 {
   11483            0 :                   tree res_op0;
   11484            0 :                   {
   11485            0 :                     tree _o1[1], _r1;
   11486            0 :                     _o1[0] = captures[0];
   11487            0 :                     _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11488            0 :                     res_op0 = _r1;
   11489              :                   }
   11490            0 :                   tree _r;
   11491            0 :                   _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11492            0 :                   if (TREE_SIDE_EFFECTS (captures[1]))
   11493            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11494            0 :                   if (TREE_SIDE_EFFECTS (captures[2]))
   11495            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11496            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1081, __FILE__, __LINE__, true);
   11497            0 :                   return _r;
   11498              :                 }
   11499            0 : next_after_fail1951:;
   11500              :               }
   11501              :           }
   11502              :       }
   11503              :     else
   11504              :       {
   11505      1522188 :         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11506        20555 :  && INTEGRAL_TYPE_P (type)
   11507              :  && (!
   11508              : 
   11509              :  || is_gimple_reg (captures[0]))
   11510       780702 :  && ((compare_tree_int (captures[1], TYPE_PRECISION (TREE_TYPE (captures[0]))) == 0
   11511            0 :  && integer_zerop (captures[2]))
   11512              :  || (BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN
   11513              :  && canonicalize_math_after_vectorization_p ()
   11514              :  && TYPE_PRECISION (TREE_TYPE (captures[0])) % BITS_PER_UNIT == 0
   11515              :  && TYPE_PRECISION (type) % BITS_PER_UNIT == 0
   11516              :  && compare_tree_int (captures[2], (BYTES_BIG_ENDIAN
   11517              :  ? (TYPE_PRECISION (TREE_TYPE (captures[0]))
   11518              :  - TYPE_PRECISION (type))
   11519              :  : 0)) == 0))
   11520              : )
   11521              :           {
   11522            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1952;
   11523            0 :             {
   11524            0 :               tree res_op0;
   11525            0 :               res_op0 = captures[0];
   11526            0 :               tree _r;
   11527            0 :               _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11528            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11529            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11530            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11531            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11532            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1082, __FILE__, __LINE__, true);
   11533            0 :               return _r;
   11534              :             }
   11535            0 : next_after_fail1952:;
   11536              :           }
   11537              :       }
   11538              :   }
   11539       761127 :   switch (TREE_CODE (_p0))
   11540              :     {
   11541         1511 :     case CONSTRUCTOR:
   11542         1511 :       {
   11543         1511 :         {
   11544         1511 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11545         1511 :           if (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
   11546         1511 :  && tree_fits_uhwi_p (TYPE_SIZE (type))
   11547         3022 :  && ((tree_to_uhwi (TYPE_SIZE (type))
   11548         1511 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
   11549            0 :  || (VECTOR_TYPE_P (type)
   11550            0 :  && (tree_to_uhwi (TYPE_SIZE (TREE_TYPE (type)))
   11551            0 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))))
   11552              : )
   11553              :             {
   11554         1511 :               {
   11555         1511 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
   11556              :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
   11557         1511 :  tree eltype = TREE_TYPE (TREE_TYPE (ctor));
   11558         1511 :  unsigned HOST_WIDE_INT width = tree_to_uhwi (TYPE_SIZE (eltype));
   11559         1511 :  unsigned HOST_WIDE_INT n = tree_to_uhwi (captures[1]);
   11560         1511 :  unsigned HOST_WIDE_INT idx = tree_to_uhwi (captures[2]);
   11561         1511 :                   if (n != 0
   11562         1511 :  && (idx % width) == 0
   11563         1511 :  && (n % width) == 0
   11564         3022 :  && known_le ((idx + n) / width,
   11565              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor)))
   11566              : )
   11567              :                     {
   11568         1511 :                       {
   11569         1511 :  idx = idx / width;
   11570         1511 :  n = n / width;
   11571         1511 :  poly_uint64 k = 1;
   11572         1511 :  if (CONSTRUCTOR_NELTS (ctor) != 0)
   11573              :  {
   11574         1511 :  tree cons_elem = TREE_TYPE (CONSTRUCTOR_ELT (ctor, 0)->value);
   11575         1511 :  if (TREE_CODE (cons_elem) == VECTOR_TYPE)
   11576         1511 :  k = TYPE_VECTOR_SUBPARTS (cons_elem);
   11577              :  }
   11578         1511 :  unsigned HOST_WIDE_INT elt, count, const_k;
   11579         1511 :                           if (multiple_p (idx, k, &elt) && multiple_p (n, k, &count)
   11580              : )
   11581              :                             {
   11582            6 :                               if (CONSTRUCTOR_NELTS (ctor) == 0
   11583              : )
   11584              :                                 {
   11585            0 :                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1953;
   11586            0 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1953;
   11587            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1953;
   11588            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1953;
   11589            0 :                                   {
   11590            0 :                                     tree _r;
   11591            0 :                                     _r =  build_zero_cst (type);
   11592            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1083, __FILE__, __LINE__, true);
   11593         1511 :                                     return _r;
   11594              :                                   }
   11595              : next_after_fail1953:;
   11596              :                                 }
   11597              :                               else
   11598              :                                 {
   11599            6 :                                   if (count == 1
   11600              : )
   11601              :                                     {
   11602            6 :                                       if (elt < CONSTRUCTOR_NELTS (ctor)
   11603              : )
   11604              :                                         {
   11605            6 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1954;
   11606            6 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1954;
   11607            6 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1954;
   11608            6 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1954;
   11609            6 :                                           {
   11610            6 :                                             tree res_op0;
   11611            6 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, elt)->value;
   11612            6 :                                             tree _r;
   11613            6 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11614            6 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1084, __FILE__, __LINE__, true);
   11615            6 :                                             return _r;
   11616              :                                           }
   11617              : next_after_fail1954:;
   11618              :                                         }
   11619              :                                       else
   11620              :                                         {
   11621            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1955;
   11622            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1955;
   11623            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1955;
   11624            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1955;
   11625            0 :                                           {
   11626            0 :                                             tree _r;
   11627            0 :                                             _r =  build_zero_cst (type);
   11628            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1085, __FILE__, __LINE__, true);
   11629            0 :                                             return _r;
   11630              :                                           }
   11631              : next_after_fail1955:;
   11632              :                                         }
   11633              :                                     }
   11634              :                                   else
   11635              :                                     {
   11636            0 :                                       if (single_use (captures[0])
   11637              : )
   11638              :                                         {
   11639            0 :                                           {
   11640            0 :  vec<constructor_elt, va_gc> *vals;
   11641            0 :  vec_alloc (vals, count);
   11642            0 :  bool constant_p = true;
   11643            0 :  tree res;
   11644            0 :  for (unsigned i = 0;
   11645            0 :  i < count && elt + i < CONSTRUCTOR_NELTS (ctor); ++i)
   11646              :  {
   11647            0 :  tree e = CONSTRUCTOR_ELT (ctor, elt + i)->value;
   11648            0 :  CONSTRUCTOR_APPEND_ELT (vals, NULL_TREE, e);
   11649            0 :  if (!CONSTANT_CLASS_P (e))
   11650            0 :  constant_p = false;
   11651              :  }
   11652            0 :  tree evtype = (types_match (TREE_TYPE (type),
   11653            0 :  TREE_TYPE (TREE_TYPE (ctor)))
   11654            0 :  ? type
   11655            0 :  : build_vector_type (TREE_TYPE (TREE_TYPE (ctor)),
   11656            0 :  count * k));
   11657            0 :  res = (constant_p ? build_vector_from_ctor (evtype, vals)
   11658              :  : (
   11659              : 
   11660            0 :  ? NULL_TREE : build_constructor (evtype, vals)));
   11661            0 :                                               if (res
   11662              : )
   11663              :                                                 {
   11664            0 :                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1956;
   11665            0 :                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1956;
   11666            0 :                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1956;
   11667            0 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1956;
   11668            0 :                                                   {
   11669            0 :                                                     tree res_op0;
   11670            0 :                                                     res_op0 =  res;
   11671            0 :                                                     tree _r;
   11672            0 :                                                     _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11673            0 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1086, __FILE__, __LINE__, true);
   11674            0 :                                                     return _r;
   11675              :                                                   }
   11676            0 : next_after_fail1956:;
   11677              :                                                 }
   11678              :                                           }
   11679              :                                         }
   11680              :                                     }
   11681              :                                 }
   11682              :                             }
   11683              :                           else
   11684              :                             {
   11685         1505 :                               if (k.is_constant (&const_k)
   11686         1505 :  && idx + n <= (idx / const_k + 1) * const_k
   11687              : )
   11688              :                                 {
   11689         1505 :                                   if (CONSTRUCTOR_NELTS (ctor) <= idx / const_k
   11690              : )
   11691              :                                     {
   11692            0 :                                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1957;
   11693            0 :                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1957;
   11694            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1957;
   11695            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1957;
   11696            0 :                                       {
   11697            0 :                                         tree _r;
   11698            0 :                                         _r =  build_zero_cst (type);
   11699            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1087, __FILE__, __LINE__, true);
   11700            0 :                                         return _r;
   11701              :                                       }
   11702              : next_after_fail1957:;
   11703              :                                     }
   11704              :                                   else
   11705              :                                     {
   11706         1505 :                                       if (n == const_k
   11707              : )
   11708              :                                         {
   11709            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1958;
   11710            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1958;
   11711            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1958;
   11712            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1958;
   11713            0 :                                           {
   11714            0 :                                             tree res_op0;
   11715            0 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   11716            0 :                                             tree _r;
   11717            0 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11718            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1088, __FILE__, __LINE__, true);
   11719            0 :                                             return _r;
   11720              :                                           }
   11721              : next_after_fail1958:;
   11722              :                                         }
   11723              :                                       else
   11724              :                                         {
   11725         1505 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1959;
   11726         1505 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1959;
   11727         1505 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1959;
   11728         1505 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1959;
   11729         1505 :                                           {
   11730         1505 :                                             tree res_op0;
   11731         1505 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   11732         1505 :                                             tree res_op1;
   11733         1505 :                                             res_op1 = captures[1];
   11734         1505 :                                             tree res_op2;
   11735         1505 :                                             res_op2 =  bitsize_int ((idx % const_k) * width);
   11736         1505 :                                             tree _r;
   11737         1505 :                                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11738         1505 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1089, __FILE__, __LINE__, true);
   11739         1505 :                                             return _r;
   11740              :                                           }
   11741              : next_after_fail1959:;
   11742              :                                         }
   11743              :                                     }
   11744              :                                 }
   11745              :                             }
   11746              :                       }
   11747              :                     }
   11748              :               }
   11749              :             }
   11750              :         }
   11751            0 :         break;
   11752              :       }
   11753            0 :     case VEC_PERM_EXPR:
   11754            0 :       {
   11755            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11756            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11757            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11758            0 :         switch (TREE_CODE (_q22))
   11759              :           {
   11760            0 :           case VECTOR_CST:
   11761            0 :             {
   11762            0 :               {
   11763            0 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _p2 };
   11764            0 :                 {
   11765            0 :  tree elem_type = TREE_TYPE (TREE_TYPE (captures[0]));
   11766            0 :  poly_uint64 elem_size = tree_to_poly_uint64 (TYPE_SIZE (elem_type));
   11767            0 :  poly_uint64 size = tree_to_poly_uint64 (TYPE_SIZE (type));
   11768            0 :  unsigned HOST_WIDE_INT nelts, idx;
   11769            0 :  unsigned HOST_WIDE_INT nelts_op = 0;
   11770            0 :                     if (constant_multiple_p (tree_to_poly_uint64 (captures[5]), elem_size, &idx)
   11771            0 :  && VECTOR_CST_NELTS (captures[3]).is_constant (&nelts)
   11772            0 :  && (known_eq (size, elem_size)
   11773            0 :  || (constant_multiple_p (size, elem_size, &nelts_op)
   11774            0 :  && pow2p_hwi (nelts_op)))
   11775              : )
   11776              :                       {
   11777            0 :                         {
   11778            0 :  bool ok = true;
   11779            0 :  if (known_eq (size, elem_size))
   11780            0 :  idx = TREE_INT_CST_LOW (VECTOR_CST_ELT (captures[3], idx)) % (2 * nelts);
   11781              :  else
   11782              :  {
   11783            0 :  unsigned start
   11784            0 :  = TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx)) % (2 * nelts);
   11785            0 :  unsigned end
   11786            0 :  = (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + nelts_op - 1))
   11787            0 :  % (2 * nelts));
   11788            0 :  if ((start < nelts) != (end < nelts))
   11789              :  ok = false;
   11790              :  else
   11791            0 :  for (unsigned HOST_WIDE_INT i = 1; i != nelts_op; i++)
   11792              :  {
   11793            0 :  if ((TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i))
   11794            0 :  % (2 * nelts) - 1)
   11795            0 :  != (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i - 1))
   11796            0 :  % (2 * nelts)))
   11797              :  {
   11798              :  ok = false;
   11799              :  break;
   11800              :  }
   11801              :  }
   11802            0 :  if (start % nelts_op)
   11803              :  ok = false;
   11804            0 :  idx = start;
   11805              :  }
   11806            0 :                             if (ok
   11807              : )
   11808              :                               {
   11809            0 :                                 if (idx < nelts
   11810              : )
   11811              :                                   {
   11812            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1960;
   11813            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1960;
   11814            0 :                                     {
   11815            0 :                                       tree res_op0;
   11816            0 :                                       res_op0 = captures[1];
   11817            0 :                                       tree res_op1;
   11818            0 :                                       res_op1 = captures[4];
   11819            0 :                                       tree res_op2;
   11820            0 :                                       res_op2 =  bitsize_int (idx * elem_size);
   11821            0 :                                       tree _r;
   11822            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11823            0 :                                       if (TREE_SIDE_EFFECTS (captures[2]))
   11824            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11825            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11826            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11827            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1090, __FILE__, __LINE__, true);
   11828            0 :                                       return _r;
   11829              :                                     }
   11830            0 : next_after_fail1960:;
   11831              :                                   }
   11832              :                                 else
   11833              :                                   {
   11834            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1961;
   11835            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1961;
   11836            0 :                                     {
   11837            0 :                                       tree res_op0;
   11838            0 :                                       res_op0 = captures[2];
   11839            0 :                                       tree res_op1;
   11840            0 :                                       res_op1 = captures[4];
   11841            0 :                                       tree res_op2;
   11842            0 :                                       res_op2 =  bitsize_int ((idx - nelts) * elem_size);
   11843            0 :                                       tree _r;
   11844            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11845            0 :                                       if (TREE_SIDE_EFFECTS (captures[1]))
   11846            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11847            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11848            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11849            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1091, __FILE__, __LINE__, true);
   11850            0 :                                       return _r;
   11851              :                                     }
   11852            0 : next_after_fail1961:;
   11853              :                                   }
   11854              :                               }
   11855              :                         }
   11856              :                       }
   11857              :                 }
   11858              :               }
   11859            0 :               break;
   11860              :             }
   11861              :           default:;
   11862              :           }
   11863              :         break;
   11864              :       }
   11865            0 :     case BIT_INSERT_EXPR:
   11866            0 :       {
   11867            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11868            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11869            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11870            0 :         {
   11871            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   11872            0 :           {
   11873            0 :  unsigned HOST_WIDE_INT isize;
   11874            0 :  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])))
   11875            0 :  isize = TYPE_PRECISION (TREE_TYPE (captures[1]));
   11876              :  else
   11877            0 :  isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (captures[1])));
   11878            0 :               if ((!INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
   11879            0 :  || type_has_mode_precision_p (TREE_TYPE (captures[1])))
   11880            0 :  && wi::leu_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   11881            0 :  && wi::leu_p (wi::to_wide (captures[4]) + wi::to_wide (captures[3]),
   11882            0 :  wi::to_wide (captures[2]) + isize)
   11883              : )
   11884              :                 {
   11885            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1962;
   11886            0 :                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1962;
   11887            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1962;
   11888            0 :                   {
   11889            0 :                     tree res_op0;
   11890            0 :                     res_op0 = captures[1];
   11891            0 :                     tree res_op1;
   11892            0 :                     res_op1 = captures[3];
   11893            0 :                     tree res_op2;
   11894            0 :                     res_op2 =  wide_int_to_tree (bitsizetype,
   11895            0 :  wi::to_wide (captures[4])
   11896            0 :  - wi::to_wide (captures[2]));
   11897            0 :                     tree _r;
   11898            0 :                     _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11899            0 :                     if (TREE_SIDE_EFFECTS (captures[0]))
   11900            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11901            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1092, __FILE__, __LINE__, true);
   11902            0 :                     return _r;
   11903              :                   }
   11904            0 : next_after_fail1962:;
   11905              :                 }
   11906              :               else
   11907              :                 {
   11908            0 :                   if (wi::eq_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   11909            0 :  && compare_tree_int (captures[3], isize) == 0
   11910              : )
   11911              :                     {
   11912            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1963;
   11913            0 :                       {
   11914            0 :                         tree res_op0;
   11915            0 :                         res_op0 = captures[1];
   11916            0 :                         tree _r;
   11917            0 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11918            0 :                         if (TREE_SIDE_EFFECTS (captures[0]))
   11919            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11920            0 :                         if (TREE_SIDE_EFFECTS (captures[2]))
   11921            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11922            0 :                         if (TREE_SIDE_EFFECTS (captures[3]))
   11923            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
   11924            0 :                         if (TREE_SIDE_EFFECTS (captures[4]))
   11925            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
   11926            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1093, __FILE__, __LINE__, true);
   11927            0 :                         return _r;
   11928              :                       }
   11929            0 : next_after_fail1963:;
   11930              :                     }
   11931              :                   else
   11932              :                     {
   11933            0 :                       if (wi::geu_p (wi::to_wide (captures[2]),
   11934            0 :  wi::to_wide (captures[4]) + wi::to_wide (captures[3]))
   11935            0 :  || wi::geu_p (wi::to_wide (captures[4]),
   11936            0 :  wi::to_wide (captures[2]) + isize)
   11937              : )
   11938              :                         {
   11939            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1964;
   11940            0 :                           {
   11941            0 :                             tree res_op0;
   11942            0 :                             res_op0 = captures[0];
   11943            0 :                             tree res_op1;
   11944            0 :                             res_op1 = captures[3];
   11945            0 :                             tree res_op2;
   11946            0 :                             res_op2 = captures[4];
   11947            0 :                             tree _r;
   11948            0 :                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11949            0 :                             if (TREE_SIDE_EFFECTS (captures[1]))
   11950            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11951            0 :                             if (TREE_SIDE_EFFECTS (captures[2]))
   11952            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11953            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1094, __FILE__, __LINE__, true);
   11954            0 :                             return _r;
   11955              :                           }
   11956            0 : next_after_fail1964:;
   11957              :                         }
   11958              :                     }
   11959              :                 }
   11960              :           }
   11961              :         }
   11962            0 :         break;
   11963              :       }
   11964              :     default:;
   11965              :     }
   11966              :   return NULL_TREE;
   11967              : }
   11968              : #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.