LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-9.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 49.4 % 6885 3401
Test Date: 2026-05-30 15:37:04 Functions: 64.7 % 68 44
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    107434244 : tree_bit_not_with_nop (tree t, tree *res_ops)
      11              : {
      12    107434244 :   const tree type = TREE_TYPE (t);
      13    107434244 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    107434244 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15    107434244 :   switch (TREE_CODE (t))
      16              :     {
      17       145563 :     case BIT_NOT_EXPR:
      18       145563 :       {
      19       145563 :         tree _p0 = TREE_OPERAND (t, 0);
      20       145563 :         {
      21       145563 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      22       145563 :           {
      23       145563 :             res_ops[0] = captures[0];
      24       145563 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 2, __FILE__, __LINE__, false);
      25              :             return true;
      26              :           }
      27              :         }
      28     21330993 :         break;
      29              :       }
      30     21330993 :     CASE_CONVERT:
      31     21330993 :       {
      32     21330993 :         tree _p0 = TREE_OPERAND (t, 0);
      33     21330993 :         switch (TREE_CODE (_p0))
      34              :           {
      35         1136 :           case BIT_NOT_EXPR:
      36         1136 :             {
      37         1136 :               tree _q20 = TREE_OPERAND (_p0, 0);
      38         1136 :               {
      39         1136 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
      40         1136 :                 if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
      41              : )
      42              :                   {
      43          615 :                     {
      44          615 :                       res_ops[0] = captures[0];
      45          615 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 3, __FILE__, __LINE__, false);
      46          615 :                       return true;
      47              :                     }
      48              :                   }
      49              :               }
      50              :               break;
      51              :             }
      52              :           default:;
      53              :           }
      54              :         break;
      55              :       }
      56              :     default:;
      57              :     }
      58              :   return false;
      59              : }
      60              : 
      61              : bool
      62     82562403 : tree_with_known_nonzero_bits_1 (tree t)
      63              : {
      64     82562403 :   const tree type = TREE_TYPE (t);
      65     82562403 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      66     82562403 :   if (TREE_SIDE_EFFECTS (t)) return false;
      67     82562403 :   switch (TREE_CODE (t))
      68              :     {
      69     20336912 :     case INTEGER_CST:
      70     20336912 :       {
      71     20336912 :         {
      72     20336912 :           tree captures[1] ATTRIBUTE_UNUSED = { t };
      73     20336912 :           {
      74     20336912 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 37, __FILE__, __LINE__, false);
      75     20336912 :             return true;
      76              :           }
      77              :         }
      78     27379808 :         break;
      79              :       }
      80     27379808 :     case SSA_NAME:
      81     27379808 :       {
      82     27379808 :         {
      83     27379808 :           tree captures[1] ATTRIBUTE_UNUSED = { t };
      84     27379808 :           if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
      85              : )
      86              :             {
      87     19315361 :               {
      88     19315361 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 38, __FILE__, __LINE__, false);
      89     19315361 :                 return true;
      90              :               }
      91              :             }
      92              :         }
      93              :         break;
      94              :       }
      95              :     default:;
      96              :     }
      97              :   return false;
      98              : }
      99              : 
     100              : bool
     101            0 : tree_compositional_complex (tree t)
     102              : {
     103            0 :   const tree type = TREE_TYPE (t);
     104            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     105            0 :   if (TREE_SIDE_EFFECTS (t)) return false;
     106            0 :   switch (TREE_CODE (t))
     107              :     {
     108            0 :     CASE_CONVERT:
     109            0 :       {
     110            0 :         tree _p0 = TREE_OPERAND (t, 0);
     111            0 :         switch (TREE_CODE (_p0))
     112              :           {
     113            0 :           case COMPLEX_EXPR:
     114            0 :             {
     115            0 :               tree _q20 = TREE_OPERAND (_p0, 0);
     116            0 :               tree _q21 = TREE_OPERAND (_p0, 1);
     117            0 :               {
     118            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
     119            0 :                 {
     120            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 43, __FILE__, __LINE__, false);
     121            0 :                   return true;
     122              :                 }
     123              :               }
     124              :               break;
     125              :             }
     126              :           default:;
     127              :           }
     128              :         break;
     129              :       }
     130            0 :     case COMPLEX_EXPR:
     131            0 :       {
     132            0 :         tree _p0 = TREE_OPERAND (t, 0);
     133            0 :         tree _p1 = TREE_OPERAND (t, 1);
     134            0 :         {
     135            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     136            0 :           {
     137            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 43, __FILE__, __LINE__, false);
     138            0 :             return true;
     139              :           }
     140              :         }
     141              :         break;
     142              :       }
     143              :     default:;
     144              :     }
     145              :   return false;
     146              : }
     147              : 
     148              : tree
     149            0 : generic_simplify_10 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     150              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     151              :  const enum tree_code ARG_UNUSED (bit_op))
     152              : {
     153            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     154            0 :   if (bit_op == BIT_AND_EXPR
     155              : )
     156              :     {
     157            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail83;
     158            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail83;
     159            0 :       {
     160            0 :         tree _r;
     161            0 :         _r =  build_zero_cst (type);
     162            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 58, __FILE__, __LINE__, true);
     163            0 :         return _r;
     164              :       }
     165              : next_after_fail83:;
     166              :     }
     167              :   else
     168              :     {
     169            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail84;
     170            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail84;
     171            0 :       {
     172            0 :         tree _r;
     173            0 :         _r =  build_minus_one_cst (type);
     174            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 59, __FILE__, __LINE__, true);
     175            0 :         return _r;
     176              :       }
     177              : next_after_fail84:;
     178              :     }
     179              :   return NULL_TREE;
     180              : }
     181              : 
     182              : tree
     183          608 : generic_simplify_19 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     184              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     185              : {
     186          608 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     187          608 :   if (bitwise_equal_p (captures[0], captures[2])
     188              : )
     189              :     {
     190           88 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail94;
     191           88 :       {
     192           88 :         tree res_op0;
     193           88 :         {
     194           88 :           tree _o1[1], _r1;
     195           88 :           {
     196           88 :             tree _o2[2], _r2;
     197           88 :             _o2[0] = captures[0];
     198           88 :             {
     199           88 :               tree _o3[1], _r3;
     200           88 :               _o3[0] = captures[1];
     201           88 :               if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
     202              :                 {
     203            8 :                   _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
     204              :                 }
     205              :               else
     206              :                 _r3 = _o3[0];
     207           88 :               _o2[1] = _r3;
     208              :             }
     209           88 :             _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     210           88 :             _o1[0] = _r2;
     211              :           }
     212           88 :           _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     213           88 :           res_op0 = _r1;
     214              :         }
     215           88 :         tree _r;
     216           88 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     217           88 :         if (TREE_SIDE_EFFECTS (captures[2]))
     218            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     219           88 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 67, __FILE__, __LINE__, true);
     220           88 :         return _r;
     221              :       }
     222            0 : next_after_fail94:;
     223              :     }
     224              :   return NULL_TREE;
     225              : }
     226              : 
     227              : tree
     228      3091838 : generic_simplify_33 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     229              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     230              :  const enum tree_code ARG_UNUSED (bitop))
     231              : {
     232      3091838 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     233      3091838 :   if (((TREE_CODE (captures[3]) == INTEGER_CST
     234       919931 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     235       737708 :  && (int_fits_type_p (captures[3], TREE_TYPE (captures[1]))
     236        11025 :  || tree_nop_conversion_p (TREE_TYPE (captures[1]), type)))
     237      2362927 :  || types_match (captures[1], captures[3]))
     238      1142782 :  && !POINTER_TYPE_P (TREE_TYPE (captures[1]))
     239      1142782 :  && !VECTOR_TYPE_P (TREE_TYPE (captures[1]))
     240      1142690 :  && TREE_CODE (TREE_TYPE (captures[1])) != OFFSET_TYPE
     241      1142690 :  && (bitop != BIT_AND_EXPR ||
     242              : 
     243              : )
     244      3091838 :  && (
     245        59525 :  TYPE_PRECISION (TREE_TYPE (captures[1])) < TYPE_PRECISION (type)
     246              :  || (
     247              : 
     248              :  && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (type))
     249        58403 :  || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT
     250        58403 :  || !type_has_mode_precision_p (type)
     251        58403 :  || (
     252              : 
     253              :  && TREE_CODE (captures[3]) != INTEGER_CST
     254              :  && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     255              :  && single_use (captures[0])
     256              :  && single_use (captures[2])))
     257              : )
     258              :     {
     259         1125 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail108;
     260         1125 :       {
     261         1125 :         tree res_op0;
     262         1125 :         {
     263         1125 :           tree _o1[2], _r1;
     264         1125 :           _o1[0] = captures[1];
     265         1125 :           {
     266         1125 :             tree _o2[1], _r2;
     267         1125 :             _o2[0] = captures[3];
     268         1125 :             if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
     269              :               {
     270         1125 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
     271              :               }
     272              :             else
     273              :               _r2 = _o2[0];
     274         1125 :             _o1[1] = _r2;
     275              :           }
     276         1125 :           _r1 = fold_build2_loc (loc, bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     277         1125 :           res_op0 = _r1;
     278              :         }
     279         1125 :         tree _r;
     280         1125 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     281         1125 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 80, __FILE__, __LINE__, true);
     282         1125 :         return _r;
     283              :       }
     284            0 : next_after_fail108:;
     285              :     }
     286              :   return NULL_TREE;
     287              : }
     288              : 
     289              : tree
     290            2 : generic_simplify_47 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     291              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     292              : {
     293            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     294            2 :   if (INTEGRAL_TYPE_P (type)
     295            2 :  && (
     296              : 
     297            2 :  || !TREE_SIDE_EFFECTS (captures[1]))
     298              : )
     299              :     {
     300            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail125;
     301            2 :       {
     302            2 :         tree res_op0;
     303            2 :         {
     304            2 :           tree _o1[1], _r1;
     305            2 :           _o1[0] = captures[2];
     306            2 :           if (TREE_TYPE (_o1[0]) != boolean_type_node)
     307              :             {
     308            2 :               _r1 = fold_build1_loc (loc, NOP_EXPR, boolean_type_node, _o1[0]);
     309              :             }
     310              :           else
     311              :             _r1 = _o1[0];
     312            2 :           res_op0 = _r1;
     313              :         }
     314            2 :         tree res_op1;
     315            2 :         res_op1 = captures[1];
     316            2 :         tree res_op2;
     317            2 :         res_op2 = captures[0];
     318            2 :         tree _r;
     319            2 :         _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
     320            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 93, __FILE__, __LINE__, true);
     321            2 :         return _r;
     322              :       }
     323            0 : next_after_fail125:;
     324              :     }
     325              :   return NULL_TREE;
     326              : }
     327              : 
     328              : tree
     329            5 : generic_simplify_52 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     330              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     331              : {
     332            5 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     333           10 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     334            5 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
     335           10 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
     336              : )
     337              :     {
     338            5 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail131;
     339            5 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail131;
     340            5 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail131;
     341            5 :       {
     342            5 :         tree res_op0;
     343            5 :         {
     344            5 :           tree _o1[2], _r1;
     345            5 :           _o1[0] = captures[1];
     346            5 :           _o1[1] = captures[3];
     347            5 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     348            5 :           res_op0 = _r1;
     349              :         }
     350            5 :         tree res_op1;
     351            5 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
     352            5 :         tree _r;
     353            5 :         _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
     354            5 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 99, __FILE__, __LINE__, true);
     355            5 :         return _r;
     356              :       }
     357              : next_after_fail131:;
     358              :     }
     359              :   return NULL_TREE;
     360              : }
     361              : 
     362              : tree
     363       219290 : generic_simplify_62 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     364              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     365              : {
     366       219290 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     367       219290 :   if (!TYPE_SATURATING (type)
     368              : )
     369              :     {
     370       219290 :       if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     371       219290 :  && !TYPE_OVERFLOW_SANITIZED (type)
     372              : )
     373              :         {
     374       217090 :           {
     375       217090 :  tree t1 = type;
     376       217090 :  if (INTEGRAL_TYPE_P (type)
     377       365469 :  && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
     378         4247 :  t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
     379       217090 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail143;
     380       217090 :               {
     381       217090 :                 tree res_op0;
     382       217090 :                 {
     383       217090 :                   tree _o1[2], _r1;
     384       217090 :                   {
     385       217090 :                     tree _o2[1], _r2;
     386       217090 :                     _o2[0] = captures[0];
     387       217090 :                     if (TREE_TYPE (_o2[0]) != t1)
     388              :                       {
     389         3978 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     390              :                       }
     391              :                     else
     392              :                       _r2 = _o2[0];
     393       217090 :                     _o1[0] = _r2;
     394              :                   }
     395       217090 :                   {
     396       217090 :                     tree _o2[1], _r2;
     397       217090 :                     _o2[0] = captures[1];
     398       217090 :                     if (TREE_TYPE (_o2[0]) != t1)
     399              :                       {
     400          955 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     401              :                       }
     402              :                     else
     403              :                       _r2 = _o2[0];
     404       217090 :                     _o1[1] = _r2;
     405              :                   }
     406       217090 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     407       217090 :                   res_op0 = _r1;
     408              :                 }
     409       217090 :                 tree _r;
     410       217090 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     411       217090 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 111, __FILE__, __LINE__, true);
     412       217090 :                 return _r;
     413              :               }
     414            0 : next_after_fail143:;
     415              :           }
     416              :         }
     417              :     }
     418              :   return NULL_TREE;
     419              : }
     420              : 
     421              : tree
     422      3704189 : generic_simplify_74 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     423              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     424              : {
     425      3704189 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     426      3704189 :   if (!TYPE_SATURATING (type)
     427      3704189 :  && (!FLOAT_TYPE_P (type) || flag_associative_math)
     428              : )
     429              :     {
     430      3704189 :       if (!ALL_FRACT_MODE_P (TYPE_MODE (type))
     431              : )
     432              :         {
     433      7408378 :           if (TREE_CODE (type) == INTEGER_TYPE
     434      3704189 :  && wi::neg_p (wi::to_wide (captures[3]))
     435     11112567 :  && wi::to_wide (captures[3]) != wi::min_value (TYPE_PRECISION (type), SIGNED)
     436              : )
     437              :             {
     438       917075 :               {
     439       917075 :  wide_int c0 = wi::to_wide (captures[1]);
     440       917075 :  wide_int c2 = wi::to_wide (captures[3]);
     441       917075 :  wide_int c2_abs = wi::abs (c2);
     442       917075 :                   if (wi::multiple_of_p (c2_abs, c0, TYPE_SIGN (type))
     443              : )
     444              :                     {
     445       449452 :                       {
     446       449452 :  wide_int div_res = wi::sdiv_trunc (c2, c0);
     447       449452 :  tree div_cst = wide_int_to_tree (type, div_res);
     448       449452 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail164;
     449       449452 :                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail164;
     450       449452 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail164;
     451       449452 :                           {
     452       449452 :                             tree res_op0;
     453       449452 :                             {
     454       449452 :                               tree _o1[2], _r1;
     455       449452 :                               _o1[0] = captures[2];
     456       449452 :                               _o1[1] =  div_cst;
     457       449452 :                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     458       449452 :                               res_op0 = _r1;
     459              :                             }
     460       449452 :                             tree res_op1;
     461       449452 :                             res_op1 = captures[1];
     462       449452 :                             tree _r;
     463       449452 :                             _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
     464       449452 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 132, __FILE__, __LINE__, true);
     465       449452 :                             return _r;
     466              :                           }
     467            0 : next_after_fail164:;
     468       449452 :                       }
     469              :                     }
     470       917075 :               }
     471              :             }
     472              :         }
     473              :     }
     474              :   return NULL_TREE;
     475              : }
     476              : 
     477              : tree
     478            4 : generic_simplify_83 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     479              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     480              :  const enum tree_code ARG_UNUSED (log1),
     481              :  const enum tree_code ARG_UNUSED (log2),
     482              :  const combined_fn ARG_UNUSED (popcount))
     483              : {
     484            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     485            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail174;
     486            4 :   {
     487            4 :     tree res_op0;
     488            4 :     {
     489            4 :       tree _o1[2], _r1;
     490            4 :       _o1[0] = captures[2];
     491            4 :       _o1[1] = captures[5];
     492            4 :       _r1 = fold_build2_loc (loc, log2, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     493            4 :       res_op0 = _r1;
     494              :     }
     495            4 :     tree _r;
     496            4 :     _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
     497            4 :     if (!_r)
     498            0 :       goto next_after_fail174;
     499            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 142, __FILE__, __LINE__, true);
     500              :     return _r;
     501              :   }
     502              : next_after_fail174:;
     503              :   return NULL_TREE;
     504              : }
     505              : 
     506              : tree
     507            0 : generic_simplify_89 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     508              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     509              : {
     510            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     511            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail180;
     512            0 :   {
     513            0 :     tree res_op0;
     514            0 :     res_op0 = unshare_expr (captures[2]);
     515            0 :     tree res_op1;
     516            0 :     {
     517            0 :       tree _o1[2], _r1;
     518            0 :       _o1[0] = captures[1];
     519            0 :       _o1[1] = captures[2];
     520            0 :       _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     521            0 :       res_op1 = _r1;
     522              :     }
     523            0 :     tree _r;
     524            0 :     _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     525            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 148, __FILE__, __LINE__, true);
     526              :     return _r;
     527              :   }
     528            0 : next_after_fail180:;
     529            0 :   return NULL_TREE;
     530              : }
     531              : 
     532              : tree
     533          178 : generic_simplify_97 (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          178 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     537          178 :   if (!TYPE_SATURATING (type)
     538              : )
     539              :     {
     540          178 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     541          356 :  && !FIXED_POINT_TYPE_P (type)
     542              : )
     543              :         {
     544            0 :           if (!ANY_INTEGRAL_TYPE_P (type)
     545          178 :  || TYPE_OVERFLOW_WRAPS (type)
     546              : )
     547              :             {
     548          102 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail188;
     549          102 :               {
     550          102 :                 tree res_op0;
     551          102 :                 {
     552          102 :                   tree _o1[1], _r1;
     553          102 :                   _o1[0] = captures[1];
     554          102 :                   if (TREE_TYPE (_o1[0]) != type)
     555              :                     {
     556            0 :                       _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     557              :                     }
     558              :                   else
     559              :                     _r1 = _o1[0];
     560          102 :                   res_op0 = _r1;
     561              :                 }
     562          102 :                 tree _r;
     563          102 :                 _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     564          102 :                 if (TREE_SIDE_EFFECTS (captures[0]))
     565            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     566          102 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 155, __FILE__, __LINE__, true);
     567          102 :                 return _r;
     568              :               }
     569            0 : next_after_fail188:;
     570              :             }
     571              :           else
     572              :             {
     573           76 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail189;
     574           76 :               {
     575           76 :                 tree res_op0;
     576           76 :                 {
     577           76 :                   tree _o1[1], _r1;
     578           76 :                   _o1[0] = captures[1];
     579           76 :                   _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     580           76 :                   res_op0 = _r1;
     581              :                 }
     582           76 :                 tree _r;
     583           76 :                 _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     584           76 :                 if (TREE_SIDE_EFFECTS (captures[0]))
     585            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     586           76 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 156, __FILE__, __LINE__, true);
     587           76 :                 return _r;
     588              :               }
     589            0 : next_after_fail189:;
     590              :             }
     591              :         }
     592              :     }
     593              :   return NULL_TREE;
     594              : }
     595              : 
     596              : tree
     597            4 : generic_simplify_109 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     598              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     599              :  const enum tree_code ARG_UNUSED (log1),
     600              :  const enum tree_code ARG_UNUSED (log2),
     601              :  const combined_fn ARG_UNUSED (popcount))
     602              : {
     603            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     604            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail206;
     605            4 :   {
     606            4 :     tree res_op0;
     607            4 :     {
     608            4 :       tree _o1[2], _r1;
     609            4 :       _o1[0] = captures[2];
     610            4 :       _o1[1] = captures[4];
     611            4 :       _r1 = fold_build2_loc (loc, log2, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     612            4 :       res_op0 = _r1;
     613              :     }
     614            4 :     tree _r;
     615            4 :     _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
     616            4 :     if (!_r)
     617            0 :       goto next_after_fail206;
     618            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 173, __FILE__, __LINE__, true);
     619              :     return _r;
     620              :   }
     621              : next_after_fail206:;
     622              :   return NULL_TREE;
     623              : }
     624              : 
     625              : tree
     626           16 : generic_simplify_113 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     627              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     628              : {
     629           16 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     630           16 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail210;
     631           16 :   {
     632           16 :     tree res_op0;
     633           16 :     res_op0 = captures[0];
     634           16 :     tree res_op1;
     635           16 :     res_op1 = captures[1];
     636           16 :     tree _r;
     637           16 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     638           16 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 177, __FILE__, __LINE__, true);
     639              :     return _r;
     640              :   }
     641            0 : next_after_fail210:;
     642            0 :   return NULL_TREE;
     643              : }
     644              : 
     645              : tree
     646            0 : generic_simplify_119 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     647              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     648              :  const enum tree_code ARG_UNUSED (op))
     649              : {
     650            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     651            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail216;
     652            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail216;
     653            0 :   {
     654            0 :     tree _r;
     655            0 :     _r = captures[0];
     656            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 182, __FILE__, __LINE__, true);
     657              :     return _r;
     658              :   }
     659              : next_after_fail216:;
     660              :   return NULL_TREE;
     661              : }
     662              : 
     663              : tree
     664            0 : generic_simplify_126 (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            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     668            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail223;
     669            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail223;
     670            0 :   {
     671            0 :     tree _r;
     672            0 :     _r = captures[2];
     673            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 184, __FILE__, __LINE__, true);
     674              :     return _r;
     675              :   }
     676              : next_after_fail223:;
     677              :   return NULL_TREE;
     678              : }
     679              : 
     680              : tree
     681            0 : generic_simplify_134 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     682              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     683              : {
     684            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     685            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail231;
     686            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail231;
     687            0 :   {
     688            0 :     tree _r;
     689            0 :     _r = captures[0];
     690            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 189, __FILE__, __LINE__, true);
     691              :     return _r;
     692              :   }
     693              : next_after_fail231:;
     694              :   return NULL_TREE;
     695              : }
     696              : 
     697              : tree
     698            2 : generic_simplify_143 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     699              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     700              :  const enum tree_code ARG_UNUSED (bitop),
     701              :  const enum tree_code ARG_UNUSED (rbitop))
     702              : {
     703            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     704            2 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail244;
     705            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail244;
     706            2 :   {
     707            2 :     tree res_op0;
     708            2 :     res_op0 = captures[0];
     709            2 :     tree res_op1;
     710            2 :     res_op1 = captures[2];
     711            2 :     tree _r;
     712            2 :     _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
     713            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 198, __FILE__, __LINE__, true);
     714              :     return _r;
     715              :   }
     716              : next_after_fail244:;
     717              :   return NULL_TREE;
     718              : }
     719              : 
     720              : tree
     721            0 : generic_simplify_149 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     722              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     723              :  const enum tree_code ARG_UNUSED (op))
     724              : {
     725            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     726            0 :   if (bitwise_equal_p (captures[4], captures[7])
     727              : )
     728              :     {
     729            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail251;
     730            0 :       {
     731            0 :         tree res_op0;
     732            0 :         {
     733            0 :           tree _o1[2], _r1;
     734            0 :           {
     735            0 :             tree _o2[2], _r2;
     736            0 :             _o2[0] = captures[5];
     737            0 :             {
     738            0 :               tree _o3[1], _r3;
     739            0 :               _o3[0] = captures[6];
     740            0 :               if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
     741              :                 {
     742            0 :                   _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
     743              :                 }
     744              :               else
     745              :                 _r3 = _o3[0];
     746            0 :               _o2[1] = _r3;
     747              :             }
     748            0 :             _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     749            0 :             _o1[0] = _r2;
     750              :           }
     751            0 :           {
     752            0 :             tree _o2[1], _r2;
     753            0 :             _o2[0] = captures[4];
     754            0 :             if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
     755              :               {
     756            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
     757              :               }
     758              :             else
     759              :               _r2 = _o2[0];
     760            0 :             _o1[1] = _r2;
     761              :           }
     762            0 :           _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     763            0 :           res_op0 = _r1;
     764              :         }
     765            0 :         tree _r;
     766            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     767            0 :         if (TREE_SIDE_EFFECTS (captures[7]))
     768            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
     769            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 201, __FILE__, __LINE__, true);
     770            0 :         return _r;
     771              :       }
     772            0 : next_after_fail251:;
     773              :     }
     774              :   return NULL_TREE;
     775              : }
     776              : 
     777              : tree
     778            0 : generic_simplify_160 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     779              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     780              :  const enum tree_code ARG_UNUSED (cmp))
     781              : {
     782            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     783            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail283;
     784            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail283;
     785            0 :   {
     786            0 :     tree res_op0;
     787            0 :     {
     788            0 :       tree _o1[2], _r1;
     789            0 :       _o1[0] =  build_zero_cst (TREE_TYPE (captures[0]));
     790            0 :       _o1[1] = captures[3];
     791            0 :       _r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
     792            0 :       res_op0 = _r1;
     793              :     }
     794            0 :     tree res_op1;
     795            0 :     res_op1 = captures[4];
     796            0 :     tree _r;
     797            0 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     798            0 :     if (TREE_SIDE_EFFECTS (captures[2]))
     799            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     800            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 225, __FILE__, __LINE__, true);
     801              :     return _r;
     802              :   }
     803              : next_after_fail283:;
     804              :   return NULL_TREE;
     805              : }
     806              : 
     807              : tree
     808            4 : generic_simplify_170 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     809              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     810              : {
     811            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     812            4 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail307;
     813            4 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail307;
     814            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail307;
     815            4 :   {
     816            4 :     tree _r;
     817            4 :     _r = captures[0];
     818            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 230, __FILE__, __LINE__, true);
     819              :     return _r;
     820              :   }
     821              : next_after_fail307:;
     822              :   return NULL_TREE;
     823              : }
     824              : 
     825              : tree
     826            0 : generic_simplify_172 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     827              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     828              : {
     829            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     830            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail309;
     831            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail309;
     832            0 :   {
     833            0 :     tree _r;
     834            0 :     _r = captures[1];
     835            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 231, __FILE__, __LINE__, true);
     836              :     return _r;
     837              :   }
     838              : next_after_fail309:;
     839              :   return NULL_TREE;
     840              : }
     841              : 
     842              : tree
     843            7 : generic_simplify_176 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     844              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     845              : {
     846            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     847            7 :   if (type_has_mode_precision_p (type)
     848            0 :  && tree_fits_uhwi_p (captures[1])
     849            0 :  && tree_fits_uhwi_p (captures[2])
     850            0 :  && tree_fits_uhwi_p (captures[4])
     851            0 :  && (((((HOST_WIDE_INT_1U << tree_to_uhwi (captures[1])) - 1)) & tree_to_uhwi (captures[2])) == 0)
     852            0 :  && (tree_to_uhwi (captures[1]) + tree_to_uhwi (captures[4])) == TYPE_PRECISION (type)
     853            0 :  && TYPE_UNSIGNED (type)
     854            7 :  && captures[0] == captures[3]
     855              : )
     856              :     {
     857            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail313;
     858            0 :       {
     859            0 :         tree res_op0;
     860            0 :         {
     861            0 :           tree _o1[2], _r1;
     862            0 :           _o1[0] = captures[0];
     863            0 :           _o1[1] = captures[4];
     864            0 :           _r1 = fold_build2_loc (loc, RROTATE_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     865            0 :           res_op0 = _r1;
     866              :         }
     867            0 :         tree res_op1;
     868            0 :         res_op1 = captures[2];
     869            0 :         tree _r;
     870            0 :         _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     871            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
     872            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     873            0 :         if (TREE_SIDE_EFFECTS (captures[3]))
     874            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
     875            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 234, __FILE__, __LINE__, true);
     876            0 :         return _r;
     877              :       }
     878            0 : next_after_fail313:;
     879              :     }
     880              :   return NULL_TREE;
     881              : }
     882              : 
     883              : tree
     884         3643 : generic_simplify_183 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     885              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     886              : {
     887         3643 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     888         3643 :   if (! FLOAT_TYPE_P (type)
     889         7286 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     890              : )
     891              :     {
     892         3642 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail320;
     893         3642 :       {
     894         3642 :         tree res_op0;
     895         3642 :         res_op0 = captures[0];
     896         3642 :         tree res_op1;
     897         3642 :         res_op1 = captures[2];
     898         3642 :         tree _r;
     899         3642 :         _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
     900         3642 :         if (TREE_SIDE_EFFECTS (captures[1]))
     901            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     902         3642 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 239, __FILE__, __LINE__, true);
     903         3642 :         return _r;
     904              :       }
     905            0 : next_after_fail320:;
     906              :     }
     907              :   return NULL_TREE;
     908              : }
     909              : 
     910              : tree
     911            0 : 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            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     915            0 :   if (INTEGRAL_TYPE_P (type)
     916            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     917            0 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
     918              : )
     919              :     {
     920            0 :       if (TYPE_UNSIGNED (type)
     921              : )
     922              :         {
     923            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail325;
     924            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail325;
     925            0 :           {
     926            0 :             tree res_op0;
     927            0 :             res_op0 = captures[0];
     928            0 :             tree _r;
     929            0 :             _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
     930            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 241, __FILE__, __LINE__, true);
     931            0 :             return _r;
     932              :           }
     933              : next_after_fail325:;
     934              :         }
     935              :       else
     936              :         {
     937            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail326;
     938            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail326;
     939            0 :           {
     940            0 :             tree res_op0;
     941            0 :             res_op0 = captures[0];
     942            0 :             tree _r;
     943            0 :             _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
     944            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 242, __FILE__, __LINE__, true);
     945            0 :             return _r;
     946              :           }
     947              : next_after_fail326:;
     948              :         }
     949              :     }
     950              :   return NULL_TREE;
     951              : }
     952              : 
     953              : tree
     954       145674 : generic_simplify_195 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     955              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     956              : {
     957       145674 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     958       145674 :   if (TREE_CODE (captures[3]) != INTEGER_CST
     959              :  && single_use (captures[0])
     960       145674 :  && !integer_zerop (captures[2]) && !integer_minus_onep (captures[2])
     961              : )
     962              :     {
     963       145644 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail335;
     964       145644 :       {
     965       145644 :         tree res_op0;
     966       145644 :         {
     967       145644 :           tree _o1[2], _r1;
     968       145644 :           _o1[0] = captures[1];
     969       145644 :           _o1[1] = captures[3];
     970       145644 :           _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     971       145644 :           res_op0 = _r1;
     972              :         }
     973       145644 :         tree res_op1;
     974       145644 :         res_op1 = captures[2];
     975       145644 :         tree _r;
     976       145644 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
     977       145644 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 250, __FILE__, __LINE__, true);
     978       145644 :         return _r;
     979              :       }
     980            0 : next_after_fail335:;
     981              :     }
     982              :   return NULL_TREE;
     983              : }
     984              : 
     985              : tree
     986           38 : generic_simplify_201 (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 (POW))
     989              : {
     990           38 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     991           38 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
     992              : )
     993              :     {
     994           38 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail341;
     995           38 :       {
     996           38 :         tree res_op0;
     997           38 :         res_op0 = captures[1];
     998           38 :         tree res_op1;
     999           38 :         {
    1000           38 :           tree _o1[2], _r1;
    1001           38 :           _o1[0] = captures[2];
    1002           38 :           _o1[1] = captures[4];
    1003           38 :           _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1004           38 :           res_op1 = _r1;
    1005              :         }
    1006           38 :         tree _r;
    1007           38 :         _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
    1008           38 :         if (!_r)
    1009            0 :           goto next_after_fail341;
    1010           38 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 256, __FILE__, __LINE__, true);
    1011           38 :         return _r;
    1012              :       }
    1013              : next_after_fail341:;
    1014              :     }
    1015              :   return NULL_TREE;
    1016              : }
    1017              : 
    1018              : tree
    1019           12 : generic_simplify_207 (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 (cmp))
    1022              : {
    1023           12 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1024           12 :   if (element_precision (captures[0]) >= element_precision (captures[1])
    1025           12 :  && types_match (captures[1], captures[3])
    1026              : )
    1027              :     {
    1028           12 :       if (wi::lt_p (wi::to_wide (captures[2]), 0, TYPE_SIGN (TREE_TYPE (captures[2])))
    1029              : )
    1030              :         {
    1031            0 :           if (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1032              : )
    1033              :             {
    1034            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail347;
    1035            0 :               {
    1036            0 :                 tree res_op0;
    1037            0 :                 res_op0 = captures[3];
    1038            0 :                 tree res_op1;
    1039            0 :                 res_op1 = captures[1];
    1040            0 :                 tree _r;
    1041            0 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1042            0 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1043            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1044            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 262, __FILE__, __LINE__, true);
    1045            0 :                 return _r;
    1046              :               }
    1047            0 : next_after_fail347:;
    1048              :             }
    1049              :           else
    1050              :             {
    1051            0 :               if (tree_expr_nonzero_p (captures[1]) && tree_expr_nonzero_p (captures[3])
    1052              : )
    1053              :                 {
    1054            0 :                   {
    1055            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[1]));
    1056            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail348;
    1057            0 :                       {
    1058            0 :                         tree res_op0;
    1059            0 :                         {
    1060            0 :                           tree _o1[1], _r1;
    1061            0 :                           _o1[0] = captures[3];
    1062            0 :                           if (TREE_TYPE (_o1[0]) != utype)
    1063              :                             {
    1064            0 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
    1065              :                             }
    1066              :                           else
    1067              :                             _r1 = _o1[0];
    1068            0 :                           res_op0 = _r1;
    1069              :                         }
    1070            0 :                         tree res_op1;
    1071            0 :                         {
    1072            0 :                           tree _o1[1], _r1;
    1073            0 :                           _o1[0] = captures[1];
    1074            0 :                           if (TREE_TYPE (_o1[0]) != utype)
    1075              :                             {
    1076            0 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
    1077              :                             }
    1078              :                           else
    1079              :                             _r1 = _o1[0];
    1080            0 :                           res_op1 = _r1;
    1081              :                         }
    1082            0 :                         tree _r;
    1083            0 :                         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1084            0 :                         if (TREE_SIDE_EFFECTS (captures[2]))
    1085            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1086            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 263, __FILE__, __LINE__, true);
    1087            0 :                         return _r;
    1088              :                       }
    1089            0 : next_after_fail348:;
    1090              :                   }
    1091              :                 }
    1092              :             }
    1093              :         }
    1094              :       else
    1095              :         {
    1096           12 :           if (wi::gt_p (wi::to_wide (captures[2]), 1, TYPE_SIGN (TREE_TYPE (captures[2])))
    1097              : )
    1098              :             {
    1099           12 :               if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1100              : )
    1101              :                 {
    1102           12 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail349;
    1103           12 :                   {
    1104           12 :                     tree res_op0;
    1105           12 :                     res_op0 = captures[1];
    1106           12 :                     tree res_op1;
    1107           12 :                     res_op1 = captures[3];
    1108           12 :                     tree _r;
    1109           12 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1110           12 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    1111            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1112           12 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 264, __FILE__, __LINE__, true);
    1113           12 :                     return _r;
    1114              :                   }
    1115            0 : next_after_fail349:;
    1116              :                 }
    1117              :               else
    1118              :                 {
    1119            0 :                   {
    1120            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[1]));
    1121            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail350;
    1122            0 :                       {
    1123            0 :                         tree res_op0;
    1124            0 :                         {
    1125            0 :                           tree _o1[1], _r1;
    1126            0 :                           _o1[0] = captures[1];
    1127            0 :                           if (TREE_TYPE (_o1[0]) != utype)
    1128              :                             {
    1129            0 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
    1130              :                             }
    1131              :                           else
    1132              :                             _r1 = _o1[0];
    1133            0 :                           res_op0 = _r1;
    1134              :                         }
    1135            0 :                         tree res_op1;
    1136            0 :                         {
    1137            0 :                           tree _o1[1], _r1;
    1138            0 :                           _o1[0] = captures[3];
    1139            0 :                           if (TREE_TYPE (_o1[0]) != utype)
    1140              :                             {
    1141            0 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, utype, _o1[0]);
    1142              :                             }
    1143              :                           else
    1144              :                             _r1 = _o1[0];
    1145            0 :                           res_op1 = _r1;
    1146              :                         }
    1147            0 :                         tree _r;
    1148            0 :                         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1149            0 :                         if (TREE_SIDE_EFFECTS (captures[2]))
    1150            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1151            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 265, __FILE__, __LINE__, true);
    1152            0 :                         return _r;
    1153              :                       }
    1154            0 : next_after_fail350:;
    1155              :                   }
    1156              :                 }
    1157              :             }
    1158              :         }
    1159              :     }
    1160              :   return NULL_TREE;
    1161              : }
    1162              : 
    1163              : tree
    1164          179 : generic_simplify_238 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1165              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1166              :  const enum tree_code ARG_UNUSED (cmp))
    1167              : {
    1168          179 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1169          179 :   {
    1170          179 :  int cand = wi::ctz (wi::to_wide (captures[2])) - wi::ctz (wi::to_wide (captures[0]));
    1171          358 :       if (cand < 0
    1172          179 :  || (!integer_zerop (captures[2])
    1173          246 :  && wi::lshift (wi::to_wide (captures[0]), cand) != wi::to_wide (captures[2]))
    1174              : )
    1175              :         {
    1176           35 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail405;
    1177           35 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail405;
    1178           35 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail405;
    1179           35 :           {
    1180           35 :             tree _r;
    1181           35 :             _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1182           35 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1183            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1184           35 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 318, __FILE__, __LINE__, true);
    1185           88 :             return _r;
    1186              :           }
    1187           91 : next_after_fail405:;
    1188              :         }
    1189              :       else
    1190              :         {
    1191          144 :           if (!integer_zerop (captures[2])
    1192          144 :  && wi::lshift (wi::to_wide (captures[0]), cand) == wi::to_wide (captures[2])
    1193              : )
    1194              :             {
    1195           53 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail406;
    1196           53 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail406;
    1197           53 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail406;
    1198           53 :               {
    1199           53 :                 tree res_op0;
    1200           53 :                 res_op0 = captures[1];
    1201           53 :                 tree res_op1;
    1202           53 :                 res_op1 =  build_int_cst (TREE_TYPE (captures[1]), cand);
    1203           53 :                 tree _r;
    1204           53 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1205           53 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 319, __FILE__, __LINE__, true);
    1206           53 :                 return _r;
    1207              :               }
    1208           91 : next_after_fail406:;
    1209              :             }
    1210              :         }
    1211              :   }
    1212           91 :   return NULL_TREE;
    1213              : }
    1214              : 
    1215              : tree
    1216        31794 : generic_simplify_249 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1217              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1218              :  const enum tree_code ARG_UNUSED (cmp),
    1219              :  const enum tree_code ARG_UNUSED (scmp))
    1220              : {
    1221        31794 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1222        31794 :   if (integer_zerop (captures[2])
    1223              : )
    1224              :     {
    1225            7 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail418;
    1226            7 :       {
    1227            7 :         tree res_op0;
    1228            7 :         res_op0 = captures[2];
    1229            7 :         tree res_op1;
    1230            7 :         res_op1 = captures[3];
    1231            7 :         tree _r;
    1232            7 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1233            7 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1234            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1235            7 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 330, __FILE__, __LINE__, true);
    1236            7 :         return _r;
    1237              :       }
    1238            0 : next_after_fail418:;
    1239              :     }
    1240              :   else
    1241              :     {
    1242        63574 :       if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1243        63574 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    1244        63574 :  && single_use (captures[0])
    1245              : )
    1246              :         {
    1247         6520 :           if (tree_int_cst_sgn (captures[2]) < 0
    1248              : )
    1249              :             {
    1250           17 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail419;
    1251           17 :               {
    1252           17 :                 tree res_op0;
    1253           17 :                 res_op0 = captures[1];
    1254           17 :                 tree res_op1;
    1255           17 :                 res_op1 = captures[3];
    1256           17 :                 tree _r;
    1257           17 :                 _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
    1258           17 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1259            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1260           17 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 331, __FILE__, __LINE__, true);
    1261           17 :                 return _r;
    1262              :               }
    1263            0 : next_after_fail419:;
    1264              :             }
    1265              :           else
    1266              :             {
    1267         6503 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail420;
    1268         6503 :               {
    1269         6503 :                 tree res_op0;
    1270         6503 :                 res_op0 = captures[1];
    1271         6503 :                 tree res_op1;
    1272         6503 :                 res_op1 = captures[3];
    1273         6503 :                 tree _r;
    1274         6503 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1275         6503 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1276            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1277         6503 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 332, __FILE__, __LINE__, true);
    1278         6503 :                 return _r;
    1279              :               }
    1280            0 : next_after_fail420:;
    1281              :             }
    1282              :         }
    1283              :     }
    1284              :   return NULL_TREE;
    1285              : }
    1286              : 
    1287              : tree
    1288        78988 : generic_simplify_262 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1289              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1290              :  const enum tree_code ARG_UNUSED (cmp),
    1291              :  const enum tree_code ARG_UNUSED (icmp))
    1292              : {
    1293        78988 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1294        78988 :   if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[1]))
    1295        78988 :  && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1]))
    1296              : )
    1297              :     {
    1298        78497 :       {
    1299        78497 :  tree itype = TREE_TYPE (captures[0]);
    1300        78497 :  format_helper fmt (REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[1]))));
    1301        78497 :  const REAL_VALUE_TYPE *cst = TREE_REAL_CST_PTR (captures[1]);
    1302        78497 :  bool exception_p = real_isnan (cst)
    1303          150 :  && flag_trapping_math
    1304        78647 :  && ((cmp != EQ_EXPR && cmp != NE_EXPR)
    1305           30 :  || (cst->signalling
    1306           30 :  && HONOR_SNANS (TREE_TYPE (captures[1]))));
    1307        78497 :           if (fmt.can_represent_integral_type_p (itype) && ! exception_p
    1308              : )
    1309              :             {
    1310        38177 :               {
    1311        38177 :  signop isign = TYPE_SIGN (itype);
    1312        38177 :  REAL_VALUE_TYPE imin, imax;
    1313        38177 :  real_from_integer (&imin, fmt, wi::min_value (itype), isign);
    1314        38177 :  real_from_integer (&imax, fmt, wi::max_value (itype), isign);
    1315        38177 :  REAL_VALUE_TYPE icst;
    1316        38177 :  if (cmp == GT_EXPR || cmp == GE_EXPR)
    1317        37842 :  real_ceil (&icst, fmt, cst);
    1318          335 :  else if (cmp == LT_EXPR || cmp == LE_EXPR)
    1319          183 :  real_floor (&icst, fmt, cst);
    1320              :  else
    1321          152 :  real_trunc (&icst, fmt, cst);
    1322        38177 :  bool cst_int_p = !real_isnan (cst) && real_identical (&icst, cst);
    1323        38177 :  bool overflow_p = false;
    1324        38177 :  wide_int icst_val
    1325        38177 :  = real_to_integer (&icst, &overflow_p, TYPE_PRECISION (itype));
    1326        38177 :                   if (real_compare (LT_EXPR, cst, &imin)
    1327              : )
    1328              :                     {
    1329        18918 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail471;
    1330        18918 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail471;
    1331        18918 :                       {
    1332        18918 :                         tree _r;
    1333        18918 :                         _r =  constant_boolean_node (cmp == GT_EXPR || cmp == GE_EXPR || cmp == NE_EXPR,
    1334              :  type);
    1335        18918 :                         if (TREE_SIDE_EFFECTS (captures[0]))
    1336            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1337        18918 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 382, __FILE__, __LINE__, true);
    1338        18918 :                         return _r;
    1339              :                       }
    1340            0 : next_after_fail471:;
    1341              :                     }
    1342              :                   else
    1343              :                     {
    1344        19259 :                       if (real_compare (GT_EXPR, cst, &imax)
    1345              : )
    1346              :                         {
    1347           99 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail472;
    1348           99 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail472;
    1349           99 :                           {
    1350           99 :                             tree _r;
    1351           99 :                             _r =  constant_boolean_node (cmp == LT_EXPR || cmp == LE_EXPR || cmp == NE_EXPR,
    1352              :  type);
    1353           99 :                             if (TREE_SIDE_EFFECTS (captures[0]))
    1354            1 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1355           99 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 383, __FILE__, __LINE__, true);
    1356           99 :                             return _r;
    1357              :                           }
    1358            0 : next_after_fail472:;
    1359              :                         }
    1360              :                       else
    1361              :                         {
    1362        19160 :                           if (cst_int_p
    1363              : )
    1364              :                             {
    1365        19052 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail473;
    1366        19052 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail473;
    1367        19052 :                               {
    1368        19052 :                                 tree res_op0;
    1369        19052 :                                 res_op0 = captures[0];
    1370        19052 :                                 tree res_op1;
    1371        19052 :  gcc_assert (!overflow_p);                              res_op1 = 
    1372        19052 :  wide_int_to_tree (itype, icst_val);
    1373        19052 :                                 tree _r;
    1374        19052 :                                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1375        19052 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 384, __FILE__, __LINE__, true);
    1376        19052 :                                 return _r;
    1377              :                               }
    1378            0 : next_after_fail473:;
    1379              :                             }
    1380              :                           else
    1381              :                             {
    1382          108 :                               if (cmp == EQ_EXPR || cmp == NE_EXPR
    1383              : )
    1384              :                                 {
    1385           14 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail474;
    1386           14 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail474;
    1387           14 :                                   {
    1388           14 :                                     tree _r;
    1389           14 :                                     _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1390           14 :                                     if (TREE_SIDE_EFFECTS (captures[0]))
    1391            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1392           14 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 385, __FILE__, __LINE__, true);
    1393           14 :                                     return _r;
    1394              :                                   }
    1395            0 : next_after_fail474:;
    1396              :                                 }
    1397              :                               else
    1398              :                                 {
    1399           94 :                                   {
    1400           94 :  gcc_checking_assert (!overflow_p);
    1401           94 :                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail475;
    1402           94 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail475;
    1403           94 :                                       {
    1404           94 :                                         tree res_op0;
    1405           94 :                                         res_op0 = captures[0];
    1406           94 :                                         tree res_op1;
    1407           94 :                                         res_op1 =  wide_int_to_tree (itype, icst_val);
    1408           94 :                                         tree _r;
    1409           94 :                                         _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1410           94 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 386, __FILE__, __LINE__, true);
    1411           94 :                                         return _r;
    1412              :                                       }
    1413            0 : next_after_fail475:;
    1414              :                                   }
    1415              :                                 }
    1416              :                             }
    1417              :                         }
    1418              :                     }
    1419        38177 :               }
    1420              :             }
    1421              :       }
    1422              :     }
    1423              :   return NULL_TREE;
    1424              : }
    1425              : 
    1426              : tree
    1427        38161 : generic_simplify_277 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1428              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1429              :  const enum tree_code ARG_UNUSED (cmp))
    1430              : {
    1431        38161 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1432        38161 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail509;
    1433        38161 :   {
    1434        38161 :     tree res_op0;
    1435        38161 :     {
    1436        38161 :       tree _o1[2], _r1;
    1437        38161 :       {
    1438        38161 :         tree _o2[2], _r2;
    1439        38161 :         _o2[0] = captures[1];
    1440        38161 :         _o2[1] = captures[4];
    1441        38161 :         _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1442        38161 :         _o1[0] = _r2;
    1443              :       }
    1444        38161 :       _o1[1] = captures[2];
    1445        38161 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1446        38161 :       res_op0 = _r1;
    1447              :     }
    1448        38161 :     tree res_op1;
    1449        38161 :     res_op1 =  build_zero_cst (TREE_TYPE (captures[2]));
    1450        38161 :     tree _r;
    1451        38161 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1452        38161 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 412, __FILE__, __LINE__, true);
    1453              :     return _r;
    1454              :   }
    1455            0 : next_after_fail509:;
    1456            0 :   return NULL_TREE;
    1457              : }
    1458              : 
    1459              : tree
    1460            0 : generic_simplify_284 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1461              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1462              :  const enum tree_code ARG_UNUSED (cmp))
    1463              : {
    1464            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1465            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail516;
    1466            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail516;
    1467            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail516;
    1468            0 :   {
    1469            0 :     tree res_op0;
    1470            0 :     res_op0 = captures[0];
    1471            0 :     tree res_op1;
    1472            0 :     res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    1473            0 :     tree _r;
    1474            0 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1475            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 417, __FILE__, __LINE__, true);
    1476              :     return _r;
    1477              :   }
    1478              : next_after_fail516:;
    1479              :   return NULL_TREE;
    1480              : }
    1481              : 
    1482              : tree
    1483       110080 : generic_simplify_286 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1484              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1485              :  const enum tree_code ARG_UNUSED (cmp))
    1486              : {
    1487       110080 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1488       110080 :   {
    1489       110080 :  poly_int64 off0, off1;
    1490       110080 :  tree base0, base1;
    1491       110080 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[2], base0, base1,
    1492              :  off0, off1,
    1493              : 1
    1494              : );
    1495       110080 :       if (equal == 1
    1496              : )
    1497              :         {
    1498        95615 :           if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
    1499              : )
    1500              :             {
    1501         8103 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail525;
    1502         8103 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail525;
    1503         8103 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail525;
    1504         8103 :               {
    1505         8103 :                 tree _r;
    1506         8103 :                 _r =  constant_boolean_node (known_eq (off0, off1), type);
    1507         8103 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 418, __FILE__, __LINE__, true);
    1508        97044 :                 return _r;
    1509              :               }
    1510        13036 : next_after_fail525:;
    1511              :             }
    1512              :           else
    1513              :             {
    1514        47318 :               if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
    1515              : )
    1516              :                 {
    1517        47318 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail526;
    1518        47318 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail526;
    1519        47318 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail526;
    1520        47318 :                   {
    1521        47318 :                     tree _r;
    1522        47318 :                     _r =  constant_boolean_node (known_ne (off0, off1), type);
    1523        47318 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 419, __FILE__, __LINE__, true);
    1524        47318 :                     return _r;
    1525              :                   }
    1526        13036 : next_after_fail526:;
    1527              :                 }
    1528              :               else
    1529              :                 {
    1530        29084 :                   if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1))
    1531              : )
    1532              :                     {
    1533        29084 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail527;
    1534        29084 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail527;
    1535        29084 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail527;
    1536        29084 :                       {
    1537        29084 :                         tree _r;
    1538        29084 :                         _r =  constant_boolean_node (known_lt (off0, off1), type);
    1539        29084 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 420, __FILE__, __LINE__, true);
    1540        29084 :                         return _r;
    1541              :                       }
    1542        13036 : next_after_fail527:;
    1543              :                     }
    1544              :                   else
    1545              :                     {
    1546          378 :                       if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1))
    1547              : )
    1548              :                         {
    1549          378 :                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail528;
    1550          378 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail528;
    1551          378 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail528;
    1552          378 :                           {
    1553          378 :                             tree _r;
    1554          378 :                             _r =  constant_boolean_node (known_le (off0, off1), type);
    1555          378 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 421, __FILE__, __LINE__, true);
    1556          378 :                             return _r;
    1557              :                           }
    1558        13036 : next_after_fail528:;
    1559              :                         }
    1560              :                       else
    1561              :                         {
    1562         7170 :                           if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1))
    1563              : )
    1564              :                             {
    1565         7170 :                               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail529;
    1566         7170 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail529;
    1567         7170 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail529;
    1568         7170 :                               {
    1569         7170 :                                 tree _r;
    1570         7170 :                                 _r =  constant_boolean_node (known_ge (off0, off1), type);
    1571         7170 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 422, __FILE__, __LINE__, true);
    1572         7170 :                                 return _r;
    1573              :                               }
    1574        13036 : next_after_fail529:;
    1575              :                             }
    1576              :                           else
    1577              :                             {
    1578         3562 :                               if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1))
    1579              : )
    1580              :                                 {
    1581         3562 :                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail530;
    1582         3562 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail530;
    1583         3562 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail530;
    1584         3562 :                                   {
    1585         3562 :                                     tree _r;
    1586         3562 :                                     _r =  constant_boolean_node (known_gt (off0, off1), type);
    1587         3562 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 423, __FILE__, __LINE__, true);
    1588         3562 :                                     return _r;
    1589              :                                   }
    1590        13036 : next_after_fail530:;
    1591              :                                 }
    1592              :                             }
    1593              :                         }
    1594              :                     }
    1595              :                 }
    1596              :             }
    1597              :         }
    1598              :       else
    1599              :         {
    1600        14465 :           if (equal == 0
    1601              : )
    1602              :             {
    1603         1429 :               if (cmp == EQ_EXPR
    1604              : )
    1605              :                 {
    1606          888 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail531;
    1607          888 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail531;
    1608          888 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail531;
    1609          888 :                   {
    1610          888 :                     tree _r;
    1611          888 :                     _r =  constant_boolean_node (false, type);
    1612          888 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 424, __FILE__, __LINE__, true);
    1613          888 :                     return _r;
    1614              :                   }
    1615        13036 : next_after_fail531:;
    1616              :                 }
    1617              :               else
    1618              :                 {
    1619          541 :                   if (cmp == NE_EXPR
    1620              : )
    1621              :                     {
    1622          541 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail532;
    1623          541 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail532;
    1624          541 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail532;
    1625          541 :                       {
    1626          541 :                         tree _r;
    1627          541 :                         _r =  constant_boolean_node (true, type);
    1628          541 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 425, __FILE__, __LINE__, true);
    1629          541 :                         return _r;
    1630              :                       }
    1631        13036 : next_after_fail532:;
    1632              :                     }
    1633              :                 }
    1634              :             }
    1635              :         }
    1636              :   }
    1637        13036 :   return NULL_TREE;
    1638              : }
    1639              : 
    1640              : tree
    1641        27529 : generic_simplify_301 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1642              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1643              :  const enum tree_code ARG_UNUSED (cmp),
    1644              :  const enum tree_code ARG_UNUSED (icmp),
    1645              :  const enum tree_code ARG_UNUSED (ncmp))
    1646              : {
    1647        27529 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1648        27529 :   if (types_match (type, TREE_TYPE (captures[0]))
    1649              : )
    1650              :     {
    1651        26791 :       {
    1652        26791 :  enum tree_code ic = invert_tree_comparison
    1653        26791 :  (cmp, HONOR_NANS (captures[1]));
    1654        26791 :           if (ic == icmp
    1655              : )
    1656              :             {
    1657        22031 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail566;
    1658        22031 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail566;
    1659        22031 :               {
    1660        22031 :                 tree res_op0;
    1661        22031 :                 res_op0 = captures[1];
    1662        22031 :                 tree res_op1;
    1663        22031 :                 res_op1 = captures[2];
    1664        22031 :                 tree _r;
    1665        22031 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1666        22031 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 459, __FILE__, __LINE__, true);
    1667        22031 :                 return _r;
    1668              :               }
    1669              : next_after_fail566:;
    1670              :             }
    1671              :           else
    1672              :             {
    1673         4760 :               if (ic == ncmp
    1674              : )
    1675              :                 {
    1676            5 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail567;
    1677            5 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail567;
    1678            5 :                   {
    1679            5 :                     tree res_op0;
    1680            5 :                     res_op0 = captures[1];
    1681            5 :                     tree res_op1;
    1682            5 :                     res_op1 = captures[2];
    1683            5 :                     tree _r;
    1684            5 :                     _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1685            5 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 460, __FILE__, __LINE__, true);
    1686            5 :                     return _r;
    1687              :                   }
    1688              : next_after_fail567:;
    1689              :                 }
    1690              :             }
    1691              :       }
    1692              :     }
    1693              :   return NULL_TREE;
    1694              : }
    1695              : 
    1696              : tree
    1697            7 : generic_simplify_309 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1698              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1699              :  const enum tree_code ARG_UNUSED (div))
    1700              : {
    1701            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1702           14 :   if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
    1703            0 :  && (!VECTOR_TYPE_P (type)
    1704            0 :  || target_supports_op_p (type, RSHIFT_EXPR, optab_vector)
    1705            0 :  || target_supports_op_p (type, RSHIFT_EXPR, optab_scalar))
    1706            7 :  && (useless_type_conversion_p (type, TREE_TYPE (captures[2]))
    1707            0 :  || (element_precision (type) >= element_precision (TREE_TYPE (captures[2]))
    1708            0 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    1709            0 :  || (element_precision (type)
    1710            0 :  == element_precision (TREE_TYPE (captures[2])))
    1711            0 :  || (INTEGRAL_TYPE_P (type)
    1712            0 :  && (tree_nonzero_bits (captures[0])
    1713            7 :  & wi::mask (element_precision (TREE_TYPE (captures[2])) - 1,
    1714              :  true,
    1715            7 :  element_precision (type))) == 0))))
    1716              : )
    1717              :     {
    1718            0 :       if (!VECTOR_TYPE_P (type)
    1719            0 :  && useless_type_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    1720            0 :  && element_precision (TREE_TYPE (captures[1])) < element_precision (type)
    1721              : )
    1722              :         {
    1723            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail575;
    1724            0 :           {
    1725            0 :             tree res_op0;
    1726            0 :             {
    1727            0 :               tree _o1[2], _r1;
    1728            0 :               _o1[0] = captures[1];
    1729            0 :               _o1[1] = captures[3];
    1730            0 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1731            0 :               res_op0 = _r1;
    1732              :             }
    1733            0 :             tree _r;
    1734            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1735            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1736            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1737            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 468, __FILE__, __LINE__, true);
    1738            0 :             return _r;
    1739              :           }
    1740            0 : next_after_fail575:;
    1741              :         }
    1742              :       else
    1743              :         {
    1744            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail576;
    1745            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail576;
    1746            0 :           {
    1747            0 :             tree res_op0;
    1748            0 :             res_op0 = captures[0];
    1749            0 :             tree res_op1;
    1750            0 :             res_op1 = captures[3];
    1751            0 :             tree _r;
    1752            0 :             _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
    1753            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1754            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1755            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 469, __FILE__, __LINE__, true);
    1756            0 :             return _r;
    1757              :           }
    1758              : next_after_fail576:;
    1759              :         }
    1760              :     }
    1761              :   return NULL_TREE;
    1762              : }
    1763              : 
    1764              : tree
    1765           52 : generic_simplify_327 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1766              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1767              :  const enum tree_code ARG_UNUSED (mod))
    1768              : {
    1769           52 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1770           52 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail596;
    1771           52 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail596;
    1772           52 :   {
    1773           52 :     tree _r;
    1774           52 :     _r = captures[0];
    1775           52 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 487, __FILE__, __LINE__, true);
    1776              :     return _r;
    1777              :   }
    1778              : next_after_fail596:;
    1779              :   return NULL_TREE;
    1780              : }
    1781              : 
    1782              : tree
    1783            5 : generic_simplify_335 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1784              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1785              :  const combined_fn ARG_UNUSED (SINH),
    1786              :  const combined_fn ARG_UNUSED (COSH),
    1787              :  const combined_fn ARG_UNUSED (TANH))
    1788              : {
    1789            5 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1790            5 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1791              : )
    1792              :     {
    1793            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail606;
    1794            3 :       {
    1795            3 :         tree res_op0;
    1796            3 :         res_op0 = captures[1];
    1797            3 :         tree _r;
    1798            3 :         _r = maybe_build_call_expr_loc (loc, TANH, type, 1, res_op0);
    1799            3 :         if (!_r)
    1800            0 :           goto next_after_fail606;
    1801            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 497, __FILE__, __LINE__, true);
    1802            3 :         return _r;
    1803              :       }
    1804              : next_after_fail606:;
    1805              :     }
    1806              :   return NULL_TREE;
    1807              : }
    1808              : 
    1809              : tree
    1810       161718 : generic_simplify_343 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1811              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1812              :  const enum tree_code ARG_UNUSED (cmp))
    1813              : {
    1814       161718 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1815       161718 :   {
    1816       161718 :  tree from_type = TREE_TYPE (captures[0]);
    1817       161718 :  tree c1_type = TREE_TYPE (captures[1]), c2_type = TREE_TYPE (captures[2]);
    1818       161718 :  enum tree_code code = ERROR_MARK;
    1819       161718 :  if (integer_zerop (captures[1])
    1820        65461 :  && INTEGRAL_TYPE_P (from_type)
    1821        64971 :  && (cmp == GE_EXPR || cmp == LT_EXPR)
    1822        17140 :  && TYPE_UNSIGNED (from_type)
    1823         1764 :  && !TYPE_UNSIGNED (c1_type)
    1824         1764 :  && TYPE_PRECISION (from_type) == TYPE_PRECISION (c1_type)
    1825          587 :  && int_fits_type_p (captures[2], from_type)
    1826       162305 :  && (types_match (c2_type, from_type)
    1827            0 :  || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type)
    1828            0 :  && (TYPE_UNSIGNED (from_type)
    1829            0 :  || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type)))))
    1830              :  {
    1831          587 :  tree_code ncmp = cmp == GE_EXPR ? LE_EXPR : GT_EXPR;
    1832          587 :  widest_int c1 = wi::mask<widest_int>(TYPE_PRECISION (type) - 1, 0);
    1833          587 :  code = minmax_from_comparison (ncmp, captures[0], c1, wi::to_widest (captures[2]));
    1834          587 :  }
    1835          587 :  if (code == ERROR_MARK
    1836       161713 :  && INTEGRAL_TYPE_P (from_type)
    1837       161223 :  && int_fits_type_p (captures[2], from_type)
    1838       161222 :  && (types_match (c1_type, from_type)
    1839         6767 :  || (TYPE_PRECISION (c1_type) > TYPE_PRECISION (from_type)
    1840            0 :  && (TYPE_UNSIGNED (from_type)
    1841            0 :  || TYPE_SIGN (c1_type) == TYPE_SIGN (from_type))))
    1842       155042 :  && (types_match (c2_type, from_type)
    1843        61200 :  || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type)
    1844        18955 :  && (TYPE_UNSIGNED (from_type)
    1845          710 :  || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type)))))
    1846              :  {
    1847       111588 :  if (cmp != EQ_EXPR)
    1848       111576 :  code = minmax_from_comparison (cmp, captures[0], captures[1], captures[0], captures[2]);
    1849           12 :  else if (int_fits_type_p (captures[1], from_type))
    1850              :  code = EQ_EXPR;
    1851              :  }
    1852       161706 :       if (code == MAX_EXPR
    1853              : )
    1854              :         {
    1855        19588 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail614;
    1856        19588 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail614;
    1857        19588 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail614;
    1858        19588 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail614;
    1859        19588 :           {
    1860        19588 :             tree res_op0;
    1861        19588 :             {
    1862        19588 :               tree _o1[2], _r1;
    1863        19588 :               _o1[0] = captures[0];
    1864        19588 :               {
    1865        19588 :                 tree _o2[1], _r2;
    1866        19588 :                 _o2[0] = captures[2];
    1867        19588 :                 if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
    1868              :                   {
    1869          316 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
    1870              :                   }
    1871              :                 else
    1872              :                   _r2 = _o2[0];
    1873        19588 :                 _o1[1] = _r2;
    1874              :               }
    1875        19588 :               _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1876        19588 :               res_op0 = _r1;
    1877              :             }
    1878        19588 :             tree _r;
    1879        19588 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1880        19588 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 505, __FILE__, __LINE__, true);
    1881        19588 :             return _r;
    1882              :           }
    1883              : next_after_fail614:;
    1884              :         }
    1885              :       else
    1886              :         {
    1887       142130 :           if (code == MIN_EXPR
    1888              : )
    1889              :             {
    1890          258 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail615;
    1891          258 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail615;
    1892          258 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail615;
    1893          258 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail615;
    1894          258 :               {
    1895          258 :                 tree res_op0;
    1896          258 :                 {
    1897          258 :                   tree _o1[2], _r1;
    1898          258 :                   _o1[0] = captures[0];
    1899          258 :                   {
    1900          258 :                     tree _o2[1], _r2;
    1901          258 :                     _o2[0] = captures[2];
    1902          258 :                     if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
    1903              :                       {
    1904          100 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
    1905              :                       }
    1906              :                     else
    1907              :                       _r2 = _o2[0];
    1908          258 :                     _o1[1] = _r2;
    1909              :                   }
    1910          258 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1911          258 :                   res_op0 = _r1;
    1912              :                 }
    1913          258 :                 tree _r;
    1914          258 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1915          258 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 506, __FILE__, __LINE__, true);
    1916          258 :                 return _r;
    1917              :               }
    1918              : next_after_fail615:;
    1919              :             }
    1920              :           else
    1921              :             {
    1922       141872 :               if (code == EQ_EXPR
    1923              : )
    1924              :                 {
    1925           12 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail616;
    1926           12 :                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail616;
    1927           12 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail616;
    1928           12 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail616;
    1929           12 :                   {
    1930           12 :                     if (! tree_invariant_p (captures[1])) goto next_after_fail616;
    1931           12 :                     tree res_op0;
    1932           12 :                     {
    1933           12 :                       tree _o1[3], _r1;
    1934           12 :                       {
    1935           12 :                         tree _o2[2], _r2;
    1936           12 :                         _o2[0] = captures[0];
    1937           12 :                         {
    1938           12 :                           tree _o3[1], _r3;
    1939           12 :                           _o3[0] = unshare_expr (captures[1]);
    1940           12 :                           if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
    1941              :                             {
    1942            0 :                               _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
    1943              :                             }
    1944              :                           else
    1945              :                             _r3 = _o3[0];
    1946           12 :                           _o2[1] = _r3;
    1947              :                         }
    1948           12 :                         _r2 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o2[0], _o2[1]);
    1949           12 :                         _o1[0] = _r2;
    1950              :                       }
    1951           12 :                       {
    1952           12 :                         tree _o2[1], _r2;
    1953           12 :                         _o2[0] = captures[1];
    1954           12 :                         if (TREE_TYPE (_o2[0]) != from_type)
    1955              :                           {
    1956            0 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, from_type, _o2[0]);
    1957              :                           }
    1958              :                         else
    1959              :                           _r2 = _o2[0];
    1960           12 :                         _o1[1] = _r2;
    1961              :                       }
    1962           12 :                       {
    1963           12 :                         tree _o2[1], _r2;
    1964           12 :                         _o2[0] = captures[2];
    1965           12 :                         if (TREE_TYPE (_o2[0]) != from_type)
    1966              :                           {
    1967            7 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, from_type, _o2[0]);
    1968              :                           }
    1969              :                         else
    1970              :                           _r2 = _o2[0];
    1971           12 :                         _o1[2] = _r2;
    1972              :                       }
    1973           12 :                       _r1 = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
    1974           12 :                       res_op0 = _r1;
    1975              :                     }
    1976           12 :                     tree _r;
    1977           12 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1978           12 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 507, __FILE__, __LINE__, true);
    1979           12 :                     return _r;
    1980              :                   }
    1981              : next_after_fail616:;
    1982              :                 }
    1983              :             }
    1984              :         }
    1985              :   }
    1986              :   return NULL_TREE;
    1987              : }
    1988              : 
    1989              : tree
    1990            0 : generic_simplify_384 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1991              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1992              :  const enum tree_code ARG_UNUSED (legt))
    1993              : {
    1994            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1995            0 :   if (!HONOR_NANS (captures[0])
    1996              : )
    1997              :     {
    1998            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail667;
    1999            0 :       {
    2000            0 :         tree _r;
    2001            0 :         _r =  constant_boolean_node (legt == LE_EXPR, type);
    2002            0 :         if (TREE_SIDE_EFFECTS (captures[0]))
    2003            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2004            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    2005            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2006            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 556, __FILE__, __LINE__, true);
    2007            0 :         return _r;
    2008              :       }
    2009            0 : next_after_fail667:;
    2010              :     }
    2011              :   return NULL_TREE;
    2012              : }
    2013              : 
    2014              : tree
    2015          555 : generic_simplify_391 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2016              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2017              :  const enum tree_code ARG_UNUSED (cmp))
    2018              : {
    2019          555 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2020          555 :   if (wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1])))
    2021              : )
    2022              :     {
    2023          555 :       {
    2024          555 :  wi::overflow_type ovf;
    2025          555 :  wide_int prod = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[1]),
    2026         1110 :  TYPE_SIGN (TREE_TYPE (captures[1])), &ovf);
    2027          555 :           if (ovf
    2028              : )
    2029              :             {
    2030            0 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail674;
    2031            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail674;
    2032            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail674;
    2033            0 :               {
    2034            0 :                 tree _r;
    2035            0 :                 _r =  constant_boolean_node (wi::lt_p (wi::to_wide (captures[2]), 0,
    2036            0 :  TYPE_SIGN (TREE_TYPE (captures[2])))
    2037            0 :  != (cmp == LT_EXPR || cmp == LE_EXPR), type);
    2038            0 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    2039            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2040            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 563, __FILE__, __LINE__, true);
    2041            0 :                 return _r;
    2042              :               }
    2043            0 : next_after_fail674:;
    2044              :             }
    2045              :           else
    2046              :             {
    2047          555 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail675;
    2048          555 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail675;
    2049          555 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail675;
    2050          555 :               {
    2051          555 :                 tree res_op0;
    2052          555 :                 res_op0 = captures[0];
    2053          555 :                 tree res_op1;
    2054          555 :                 res_op1 =  wide_int_to_tree (TREE_TYPE (captures[0]), prod);
    2055          555 :                 tree _r;
    2056          555 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2057          555 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 564, __FILE__, __LINE__, true);
    2058          555 :                 return _r;
    2059              :               }
    2060            0 : next_after_fail675:;
    2061              :             }
    2062          555 :       }
    2063              :     }
    2064              :   return NULL_TREE;
    2065              : }
    2066              : 
    2067              : tree
    2068            0 : generic_simplify_404 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2069              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2070              :  const enum tree_code ARG_UNUSED (op),
    2071              :  const enum tree_code ARG_UNUSED (cmp))
    2072              : {
    2073            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2074            0 :   {
    2075            0 :  bool ok = true;
    2076            0 :  HOST_WIDE_INT val = 0;
    2077            0 :  if (!tree_fits_shwi_p (captures[3]))
    2078              :  ok = false;
    2079              :  else
    2080              :  {
    2081            0 :  val = tree_to_shwi (captures[3]);
    2082            0 :  if (op == GT_EXPR || op == LE_EXPR)
    2083              :  {
    2084            0 :  if (val == HOST_WIDE_INT_MAX)
    2085              :  ok = false;
    2086              :  else
    2087            0 :  val++;
    2088              :  }
    2089              :  }
    2090            0 :  HOST_WIDE_INT zero_val = tree_to_shwi (captures[2]);
    2091            0 :  tree type0 = TREE_TYPE (captures[1]);
    2092            0 :  int prec = TYPE_PRECISION (type0);
    2093            0 :  if (prec > MAX_FIXED_MODE_SIZE)
    2094            0 :  ok = false;
    2095            0 :       if (val <= 0
    2096              : )
    2097              :         {
    2098            0 :           if (ok && zero_val >= val
    2099              : )
    2100              :             {
    2101            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail724;
    2102            0 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail724;
    2103            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail724;
    2104            0 :               {
    2105            0 :                 tree _r;
    2106            0 :                 _r =  constant_boolean_node (cmp == EQ_EXPR ? true : false, type);
    2107            0 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    2108            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2109            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 596, __FILE__, __LINE__, true);
    2110            0 :                 return _r;
    2111              :               }
    2112              : next_after_fail724:;
    2113              :             }
    2114              :         }
    2115              :       else
    2116              :         {
    2117            0 :           if (val >= prec
    2118              : )
    2119              :             {
    2120            0 :               if (ok && zero_val < val
    2121              : )
    2122              :                 {
    2123            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail725;
    2124            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail725;
    2125            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail725;
    2126            0 :                   {
    2127            0 :                     tree _r;
    2128            0 :                     _r =  constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
    2129            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    2130            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2131            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 597, __FILE__, __LINE__, true);
    2132            0 :                     return _r;
    2133              :                   }
    2134              : next_after_fail725:;
    2135              :                 }
    2136              :             }
    2137              :           else
    2138              :             {
    2139            0 :               if (ok && (zero_val < 0 || zero_val >= prec)
    2140              : )
    2141              :                 {
    2142            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail726;
    2143            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail726;
    2144            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail726;
    2145            0 :                   {
    2146            0 :                     tree res_op0;
    2147            0 :                     {
    2148            0 :                       tree _o1[2], _r1;
    2149            0 :                       _o1[0] = captures[1];
    2150            0 :                       _o1[1] =  wide_int_to_tree (type0,
    2151            0 :  wi::mask (val, false, prec));
    2152            0 :                       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2153            0 :                       res_op0 = _r1;
    2154              :                     }
    2155            0 :                     tree res_op1;
    2156            0 :                     res_op1 =  build_zero_cst (type0);
    2157            0 :                     tree _r;
    2158            0 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2159            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 598, __FILE__, __LINE__, true);
    2160            0 :                     return _r;
    2161              :                   }
    2162              : next_after_fail726:;
    2163              :                 }
    2164              :             }
    2165              :         }
    2166              :   }
    2167              :   return NULL_TREE;
    2168              : }
    2169              : 
    2170              : tree
    2171      1627627 : generic_simplify_417 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2172              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2173              :  const enum tree_code ARG_UNUSED (shift))
    2174              : {
    2175      1627627 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2176      1627627 :   if ((
    2177              : 
    2178      1627627 :  || !sanitize_flags_p (SANITIZE_SHIFT_EXPONENT))
    2179      1625681 :  && (TYPE_UNSIGNED (type)
    2180       391579 :  || shift == LSHIFT_EXPR
    2181       197070 :  || tree_expr_nonnegative_p (captures[0]))
    2182      3058227 :  && wi::ges_p (wi::to_wide (uniform_integer_cst_p (captures[1])),
    2183      3057005 :  element_precision (type))
    2184              : )
    2185              :     {
    2186         1222 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail743;
    2187         1222 :       {
    2188         1222 :         tree _r;
    2189         1222 :         _r =  build_zero_cst (type);
    2190         1222 :         if (TREE_SIDE_EFFECTS (captures[0]))
    2191            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2192         1222 :         if (TREE_SIDE_EFFECTS (captures[1]))
    2193            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2194         1222 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 611, __FILE__, __LINE__, true);
    2195         1222 :         return _r;
    2196              :       }
    2197            0 : next_after_fail743:;
    2198              :     }
    2199              :   return NULL_TREE;
    2200              : }
    2201              : 
    2202              : tree
    2203           67 : generic_simplify_426 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2204              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2205              : {
    2206           67 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2207           67 :   if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type))
    2208              : )
    2209              :     {
    2210           67 :       if (TYPE_UNSIGNED (type)
    2211              : )
    2212              :         {
    2213            2 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail755;
    2214            2 :           {
    2215            2 :             tree res_op0;
    2216            2 :             {
    2217            2 :               tree _o1[1], _r1;
    2218            2 :               _o1[0] = captures[0];
    2219            2 :               if (TREE_TYPE (_o1[0]) != type)
    2220              :                 {
    2221            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2222              :                 }
    2223              :               else
    2224              :                 _r1 = _o1[0];
    2225            2 :               res_op0 = _r1;
    2226              :             }
    2227            2 :             tree res_op1;
    2228            2 :             {
    2229            2 :               tree _o1[2], _r1;
    2230            2 :               _o1[0] =  build_minus_one_cst (type);
    2231            2 :               _o1[1] = captures[1];
    2232            2 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2233            2 :               res_op1 = _r1;
    2234              :             }
    2235            2 :             tree _r;
    2236            2 :             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2237            2 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 621, __FILE__, __LINE__, true);
    2238            2 :             return _r;
    2239              :           }
    2240            0 : next_after_fail755:;
    2241              :         }
    2242              :       else
    2243              :         {
    2244           65 :           if (INTEGRAL_TYPE_P (type)
    2245              : )
    2246              :             {
    2247           65 :               {
    2248           65 :  int width = element_precision (type) - tree_to_uhwi (captures[1]);
    2249           65 :  tree stype = NULL_TREE;
    2250          130 :  if (width <= MAX_FIXED_MODE_SIZE)
    2251           65 :  stype = build_nonstandard_integer_type (width, 0);
    2252           65 :                   if (stype && (width == 1 || type_has_mode_precision_p (stype))
    2253              : )
    2254              :                     {
    2255           25 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail756;
    2256           25 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail756;
    2257           25 :                       {
    2258           25 :                         tree res_op0;
    2259           25 :                         {
    2260           25 :                           tree _o1[1], _r1;
    2261           25 :                           _o1[0] = captures[0];
    2262           25 :                           if (TREE_TYPE (_o1[0]) != stype)
    2263              :                             {
    2264           25 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
    2265              :                             }
    2266              :                           else
    2267              :                             _r1 = _o1[0];
    2268           25 :                           res_op0 = _r1;
    2269              :                         }
    2270           25 :                         tree _r;
    2271           25 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2272           25 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 622, __FILE__, __LINE__, true);
    2273           25 :                         return _r;
    2274              :                       }
    2275              : next_after_fail756:;
    2276              :                     }
    2277              :               }
    2278              :             }
    2279              :         }
    2280              :     }
    2281              :   return NULL_TREE;
    2282              : }
    2283              : 
    2284              : tree
    2285      8869092 : generic_simplify_433 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2286              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2287              :  const enum tree_code ARG_UNUSED (op))
    2288              : {
    2289      8869092 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2290      8869092 :   if (INTEGRAL_TYPE_P (type)
    2291      8005825 :  && op != MULT_EXPR
    2292      8005825 :  && op != RDIV_EXPR
    2293      4008755 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2294      3606215 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2295      3606215 :  && type_has_mode_precision_p (TREE_TYPE (captures[2]))
    2296      3556550 :  && type_has_mode_precision_p (TREE_TYPE (captures[4]))
    2297      3556542 :  && type_has_mode_precision_p (type)
    2298      3548021 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    2299      1136963 :  && types_match (captures[2], type)
    2300      8882683 :  && (types_match (captures[2], captures[4])
    2301        13591 :  || poly_int_tree_p (captures[3]))
    2302              : )
    2303              :     {
    2304        10940 :       if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
    2305              : )
    2306              :         {
    2307         6003 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail771;
    2308         6003 :           {
    2309         6003 :             tree res_op0;
    2310         6003 :             res_op0 = captures[2];
    2311         6003 :             tree res_op1;
    2312         6003 :             {
    2313         6003 :               tree _o1[1], _r1;
    2314         6003 :               _o1[0] = captures[4];
    2315         6003 :               if (TREE_TYPE (_o1[0]) != type)
    2316              :                 {
    2317         6003 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2318              :                 }
    2319              :               else
    2320              :                 _r1 = _o1[0];
    2321         6003 :               res_op1 = _r1;
    2322              :             }
    2323         6003 :             tree _r;
    2324         6003 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2325         6003 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 633, __FILE__, __LINE__, true);
    2326         6003 :             return _r;
    2327              :           }
    2328            0 : next_after_fail771:;
    2329              :         }
    2330              :       else
    2331              :         {
    2332         4937 :           {
    2333         4937 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
    2334         4937 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail772;
    2335         4937 :               {
    2336         4937 :                 tree res_op0;
    2337         4937 :                 {
    2338         4937 :                   tree _o1[2], _r1;
    2339         4937 :                   {
    2340         4937 :                     tree _o2[1], _r2;
    2341         4937 :                     _o2[0] = captures[2];
    2342         4937 :                     if (TREE_TYPE (_o2[0]) != utype)
    2343              :                       {
    2344         4937 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2345              :                       }
    2346              :                     else
    2347              :                       _r2 = _o2[0];
    2348         4937 :                     _o1[0] = _r2;
    2349              :                   }
    2350         4937 :                   {
    2351         4937 :                     tree _o2[1], _r2;
    2352         4937 :                     _o2[0] = captures[4];
    2353         4937 :                     if (TREE_TYPE (_o2[0]) != utype)
    2354              :                       {
    2355         4937 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2356              :                       }
    2357              :                     else
    2358              :                       _r2 = _o2[0];
    2359         4937 :                     _o1[1] = _r2;
    2360              :                   }
    2361         4937 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2362         4937 :                   res_op0 = _r1;
    2363              :                 }
    2364         4937 :                 tree _r;
    2365         4937 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2366         4937 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 634, __FILE__, __LINE__, true);
    2367         4937 :                 return _r;
    2368              :               }
    2369            0 : next_after_fail772:;
    2370              :           }
    2371              :         }
    2372              :     }
    2373              :   else
    2374              :     {
    2375      8825955 :       if (FLOAT_TYPE_P (type)
    2376      8890349 :  && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    2377        32197 :  == DECIMAL_FLOAT_TYPE_P (type)
    2378              : )
    2379              :         {
    2380        32171 :           {
    2381        32171 :  tree arg0 = strip_float_extensions (captures[2]);
    2382        32171 :  tree arg1 = strip_float_extensions (captures[4]);
    2383        32171 :  tree itype = TREE_TYPE (captures[0]);
    2384        32171 :  tree ty1 = TREE_TYPE (arg0);
    2385        32171 :  tree ty2 = TREE_TYPE (arg1);
    2386        32171 :  enum tree_code code = TREE_CODE (itype);
    2387            0 :               if (FLOAT_TYPE_P (ty1)
    2388        32171 :  && FLOAT_TYPE_P (ty2)
    2389              : )
    2390              :                 {
    2391        32171 :                   {
    2392        32171 :  tree newtype = type;
    2393        32171 :  if (TYPE_MODE (ty1) == SDmode
    2394        31909 :  || TYPE_MODE (ty2) == SDmode
    2395        64080 :  || TYPE_MODE (type) == SDmode)
    2396          262 :  newtype = dfloat32_type_node;
    2397        32171 :  if (TYPE_MODE (ty1) == DDmode
    2398        32039 :  || TYPE_MODE (ty2) == DDmode
    2399        64083 :  || TYPE_MODE (type) == DDmode)
    2400          259 :  newtype = dfloat64_type_node;
    2401        32171 :  if (TYPE_MODE (ty1) == TDmode
    2402        32171 :  || TYPE_MODE (ty2) == TDmode
    2403        64090 :  || TYPE_MODE (type) == TDmode)
    2404          267 :  newtype = dfloat128_type_node;
    2405        32171 :                       if ((newtype == dfloat32_type_node
    2406        32171 :  || newtype == dfloat64_type_node
    2407        32044 :  || newtype == dfloat128_type_node)
    2408          394 :  && newtype == type
    2409        32177 :  && types_match (newtype, type)
    2410              : )
    2411              :                         {
    2412            6 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail773;
    2413            0 :                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail773;
    2414            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail773;
    2415            0 :                           {
    2416            0 :                             tree res_op0;
    2417            0 :                             {
    2418            0 :                               tree _o1[1], _r1;
    2419            0 :                               _o1[0] = captures[2];
    2420            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2421              :                                 {
    2422            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2423              :                                 }
    2424              :                               else
    2425              :                                 _r1 = _o1[0];
    2426            0 :                               res_op0 = _r1;
    2427              :                             }
    2428            0 :                             tree res_op1;
    2429            0 :                             {
    2430            0 :                               tree _o1[1], _r1;
    2431            0 :                               _o1[0] = captures[4];
    2432            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2433              :                                 {
    2434            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2435              :                                 }
    2436              :                               else
    2437              :                                 _r1 = _o1[0];
    2438            0 :                               res_op1 = _r1;
    2439              :                             }
    2440            0 :                             tree _r;
    2441            0 :                             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2442            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 635, __FILE__, __LINE__, true);
    2443            0 :                             return _r;
    2444              :                           }
    2445              : next_after_fail773:;
    2446              :                         }
    2447              :                       else
    2448              :                         {
    2449        32165 :                           {
    2450        32165 :  if (element_precision (ty1) > element_precision (newtype))
    2451           14 :  newtype = ty1;
    2452        32165 :  if (element_precision (ty2) > element_precision (newtype))
    2453         4064 :  newtype = ty2;
    2454        32165 :                               if (element_precision (newtype) < element_precision (itype)
    2455        15343 :  && (!VECTOR_MODE_P (TYPE_MODE (newtype))
    2456            0 :  || target_supports_op_p (newtype, op, optab_default))
    2457        15343 :  && (flag_unsafe_math_optimizations
    2458        15318 :  || (element_precision (newtype) == element_precision (type)
    2459        15294 :  && real_can_shorten_arithmetic (element_mode (itype),
    2460              :  element_mode (type))
    2461         6653 :  && !excess_precision_type (newtype)))
    2462        35436 :  && !types_match (itype, newtype)
    2463              : )
    2464              :                                 {
    2465         3271 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail774;
    2466         3270 :                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail774;
    2467         3262 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail774;
    2468         3262 :                                   {
    2469         3262 :                                     tree res_op0;
    2470         3262 :                                     {
    2471         3262 :                                       tree _o1[2], _r1;
    2472         3262 :                                       {
    2473         3262 :                                         tree _o2[1], _r2;
    2474         3262 :                                         _o2[0] = captures[2];
    2475         3262 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2476              :                                           {
    2477            3 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2478              :                                           }
    2479              :                                         else
    2480              :                                           _r2 = _o2[0];
    2481         3262 :                                         _o1[0] = _r2;
    2482              :                                       }
    2483         3262 :                                       {
    2484         3262 :                                         tree _o2[1], _r2;
    2485         3262 :                                         _o2[0] = captures[4];
    2486         3262 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2487              :                                           {
    2488         3262 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2489              :                                           }
    2490              :                                         else
    2491              :                                           _r2 = _o2[0];
    2492         3262 :                                         _o1[1] = _r2;
    2493              :                                       }
    2494         3262 :                                       _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2495         3262 :                                       res_op0 = _r1;
    2496              :                                     }
    2497         3262 :                                     tree _r;
    2498         3262 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2499         3262 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 636, __FILE__, __LINE__, true);
    2500         3262 :                                     return _r;
    2501              :                                   }
    2502              : next_after_fail774:;
    2503              :                                 }
    2504              :                           }
    2505              :                         }
    2506              :                   }
    2507              :                 }
    2508              :           }
    2509              :         }
    2510              :     }
    2511              :   return NULL_TREE;
    2512              : }
    2513              : 
    2514              : tree
    2515            2 : generic_simplify_464 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2516              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2517              : {
    2518            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2519            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail811;
    2520            2 :   {
    2521            2 :     tree res_op0;
    2522            2 :     {
    2523            2 :       tree _o1[2], _r1;
    2524            2 :       _o1[0] = captures[1];
    2525            2 :       _o1[1] = captures[2];
    2526            2 :       _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2527            2 :       res_op0 = _r1;
    2528              :     }
    2529            2 :     tree _r;
    2530            2 :     _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    2531            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 664, __FILE__, __LINE__, true);
    2532              :     return _r;
    2533              :   }
    2534            0 : next_after_fail811:;
    2535            0 :   return NULL_TREE;
    2536              : }
    2537              : 
    2538              : tree
    2539            8 : generic_simplify_470 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2540              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2541              :  const enum tree_code ARG_UNUSED (eqne))
    2542              : {
    2543            8 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2544            8 :   if (eqne == EQ_EXPR
    2545              : )
    2546              :     {
    2547            4 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail817;
    2548            4 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail817;
    2549            4 :       {
    2550            4 :         tree _r;
    2551            4 :         _r =  constant_boolean_node (false, type);
    2552            4 :         if (TREE_SIDE_EFFECTS (captures[2]))
    2553            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2554            4 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 669, __FILE__, __LINE__, true);
    2555            4 :         return _r;
    2556              :       }
    2557              : next_after_fail817:;
    2558              :     }
    2559              :   else
    2560              :     {
    2561            4 :       if (eqne == NE_EXPR
    2562              : )
    2563              :         {
    2564            4 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail818;
    2565            4 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail818;
    2566            4 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail818;
    2567            4 :           {
    2568            4 :             tree _r;
    2569            4 :             _r = captures[0];
    2570            4 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 670, __FILE__, __LINE__, true);
    2571            4 :             return _r;
    2572              :           }
    2573              : next_after_fail818:;
    2574              :         }
    2575              :     }
    2576              :   return NULL_TREE;
    2577              : }
    2578              : 
    2579              : tree
    2580          213 : generic_simplify_480 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2581              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2582              :  const enum tree_code ARG_UNUSED (code2),
    2583              :  const enum tree_code ARG_UNUSED (code1))
    2584              : {
    2585          213 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2586          213 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
    2587            6 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2588          213 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2589            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
    2590            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
    2591            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
    2592          207 :  && bitwise_equal_p (captures[2], captures[5]))
    2593              : )
    2594              :     {
    2595            6 :       {
    2596            6 :  bool one_before = false;
    2597            6 :  bool one_after = false;
    2598            6 :  int cmp = 0;
    2599            6 :  bool allbits = true;
    2600            6 :  if (TREE_CODE (captures[2]) == INTEGER_CST
    2601            6 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2602              :  {
    2603            6 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
    2604            6 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
    2605            6 :  auto t2 = wi::to_wide (captures[5]);
    2606            6 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
    2607            6 :  if (cmp < 0
    2608            6 :  && t1 == t2 - 1)
    2609              :  one_before = true;
    2610            6 :  if (cmp > 0
    2611            6 :  && t1 == t2 + 1)
    2612              :  one_after = true;
    2613              :  }
    2614            6 :  bool val;
    2615            6 :  switch (code2)
    2616              :  {
    2617            0 :  case EQ_EXPR: val = (cmp == 0); break;
    2618            2 :  case NE_EXPR: val = (cmp != 0); break;
    2619            0 :  case LT_EXPR: val = (cmp < 0); break;
    2620            4 :  case GT_EXPR: val = (cmp > 0); break;
    2621            0 :  case LE_EXPR: val = (cmp <= 0); break;
    2622            0 :  case GE_EXPR: val = (cmp >= 0); break;
    2623            0 :  default: gcc_unreachable ();
    2624              :  }
    2625            6 :           if (code1 == EQ_EXPR && val
    2626              : )
    2627              :             {
    2628            0 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail855;
    2629            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail855;
    2630            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail855;
    2631            0 :               {
    2632            0 :                 tree _r;
    2633            0 :                 _r = captures[0];
    2634            0 :                 if (TREE_SIDE_EFFECTS (captures[4]))
    2635            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2636            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 673, __FILE__, __LINE__, true);
    2637            0 :                 return _r;
    2638              :               }
    2639              : next_after_fail855:;
    2640              :             }
    2641              :           else
    2642              :             {
    2643            6 :               if (code1 == EQ_EXPR && !val
    2644              : )
    2645              :                 {
    2646            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail856;
    2647            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail856;
    2648            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail856;
    2649            0 :                   {
    2650            0 :                     tree _r;
    2651            0 :                     _r =  constant_boolean_node (false, type);
    2652            0 :                     if (TREE_SIDE_EFFECTS (captures[4]))
    2653            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2654            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 674, __FILE__, __LINE__, true);
    2655            0 :                     return _r;
    2656              :                   }
    2657              : next_after_fail856:;
    2658              :                 }
    2659              :               else
    2660              :                 {
    2661            6 :                   if (code1 == NE_EXPR && !val && allbits
    2662              : )
    2663              :                     {
    2664            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail857;
    2665            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail857;
    2666            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail857;
    2667            0 :                       {
    2668            0 :                         tree _r;
    2669            0 :                         _r = captures[3];
    2670            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 675, __FILE__, __LINE__, true);
    2671            0 :                         return _r;
    2672              :                       }
    2673              : next_after_fail857:;
    2674              :                     }
    2675              :                   else
    2676              :                     {
    2677            6 :                       if ((code1 == NE_EXPR
    2678            6 :  && code2 == GE_EXPR
    2679            0 :  && cmp == 0
    2680            0 :  && allbits)
    2681            6 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2682            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2683            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2684              : )
    2685              :                         {
    2686            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail858;
    2687            0 :                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail858;
    2688            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail858;
    2689            0 :                           {
    2690            0 :                             tree res_op0;
    2691            0 :                             res_op0 = captures[4];
    2692            0 :                             tree res_op1;
    2693            0 :                             {
    2694            0 :                               tree _o1[1], _r1;
    2695            0 :                               _o1[0] = captures[2];
    2696            0 :                               if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2697              :                                 {
    2698            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2699              :                                 }
    2700              :                               else
    2701              :                                 _r1 = _o1[0];
    2702            0 :                               res_op1 = _r1;
    2703              :                             }
    2704            0 :                             tree _r;
    2705            0 :                             _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2706            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 676, __FILE__, __LINE__, true);
    2707            0 :                             return _r;
    2708              :                           }
    2709              : next_after_fail858:;
    2710              :                         }
    2711              :                       else
    2712              :                         {
    2713            6 :                           if ((code1 == NE_EXPR
    2714            6 :  && code2 == LE_EXPR
    2715            0 :  && cmp == 0
    2716            0 :  && allbits)
    2717            6 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2718            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2719            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2720              : )
    2721              :                             {
    2722            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail859;
    2723            0 :                               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail859;
    2724            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail859;
    2725            0 :                               {
    2726            0 :                                 tree res_op0;
    2727            0 :                                 res_op0 = captures[4];
    2728            0 :                                 tree res_op1;
    2729            0 :                                 {
    2730            0 :                                   tree _o1[1], _r1;
    2731            0 :                                   _o1[0] = captures[2];
    2732            0 :                                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2733              :                                     {
    2734            0 :                                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2735              :                                     }
    2736              :                                   else
    2737              :                                     _r1 = _o1[0];
    2738            0 :                                   res_op1 = _r1;
    2739              :                                 }
    2740            0 :                                 tree _r;
    2741            0 :                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2742            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
    2743            0 :                                 return _r;
    2744              :                               }
    2745              : next_after_fail859:;
    2746              :                             }
    2747              :                           else
    2748              :                             {
    2749            6 :                               if ((code1 == NE_EXPR
    2750            6 :  && code2 == GT_EXPR
    2751              :  && one_after
    2752            4 :  && allbits)
    2753            6 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2754            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2755            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2756              : )
    2757              :                                 {
    2758            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail860;
    2759            0 :                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail860;
    2760            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail860;
    2761            0 :                                   {
    2762            0 :                                     tree res_op0;
    2763            0 :                                     res_op0 = captures[4];
    2764            0 :                                     tree res_op1;
    2765            0 :                                     {
    2766            0 :                                       tree _o1[1], _r1;
    2767            0 :                                       _o1[0] = captures[2];
    2768            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2769              :                                         {
    2770            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2771              :                                         }
    2772              :                                       else
    2773              :                                         _r1 = _o1[0];
    2774            0 :                                       res_op1 = _r1;
    2775              :                                     }
    2776            0 :                                     tree _r;
    2777            0 :                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2778            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 678, __FILE__, __LINE__, true);
    2779            0 :                                     return _r;
    2780              :                                   }
    2781              : next_after_fail860:;
    2782              :                                 }
    2783              :                               else
    2784              :                                 {
    2785            6 :                                   if ((code1 == NE_EXPR
    2786            6 :  && code2 == LT_EXPR
    2787              :  && one_before
    2788            0 :  && allbits)
    2789            6 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2790            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2791            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2792              : )
    2793              :                                     {
    2794            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail861;
    2795            0 :                                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail861;
    2796            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail861;
    2797            0 :                                       {
    2798            0 :                                         tree res_op0;
    2799            0 :                                         res_op0 = captures[4];
    2800            0 :                                         tree res_op1;
    2801            0 :                                         {
    2802            0 :                                           tree _o1[1], _r1;
    2803            0 :                                           _o1[0] = captures[2];
    2804            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2805              :                                             {
    2806            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2807              :                                             }
    2808              :                                           else
    2809              :                                             _r1 = _o1[0];
    2810            0 :                                           res_op1 = _r1;
    2811              :                                         }
    2812            0 :                                         tree _r;
    2813            0 :                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2814            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
    2815            0 :                                         return _r;
    2816              :                                       }
    2817              : next_after_fail861:;
    2818              :                                     }
    2819              :                                 }
    2820              :                             }
    2821              :                         }
    2822              :                     }
    2823              :                 }
    2824              :             }
    2825              :       }
    2826              :     }
    2827              :   return NULL_TREE;
    2828              : }
    2829              : 
    2830              : tree
    2831          147 : generic_simplify_513 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2832              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2833              : {
    2834          147 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2835          147 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail905;
    2836          147 :   {
    2837          147 :     tree res_op0;
    2838          147 :     {
    2839          147 :       tree _o1[1], _r1;
    2840          147 :       _o1[0] = captures[0];
    2841          147 :       if (TREE_TYPE (_o1[0]) != type)
    2842              :         {
    2843            0 :           _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    2844              :         }
    2845              :       else
    2846              :         _r1 = _o1[0];
    2847          147 :       res_op0 = _r1;
    2848              :     }
    2849          147 :     tree res_op1;
    2850          147 :     res_op1 =  build_each_one_cst (type);
    2851          147 :     tree _r;
    2852          147 :     _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    2853          147 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 717, __FILE__, __LINE__, true);
    2854              :     return _r;
    2855              :   }
    2856            0 : next_after_fail905:;
    2857            0 :   return NULL_TREE;
    2858              : }
    2859              : 
    2860              : tree
    2861            0 : generic_simplify_520 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2862              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2863              :  const enum tree_code ARG_UNUSED (minmax))
    2864              : {
    2865            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2866            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail913;
    2867            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail913;
    2868            0 :   {
    2869            0 :     tree _r;
    2870            0 :     _r = captures[0];
    2871            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 724, __FILE__, __LINE__, true);
    2872              :     return _r;
    2873              :   }
    2874              : next_after_fail913:;
    2875              :   return NULL_TREE;
    2876              : }
    2877              : 
    2878              : tree
    2879            0 : generic_simplify_528 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2880              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2881              :  const enum tree_code ARG_UNUSED (minmax),
    2882              :  const enum tree_code ARG_UNUSED (cmp))
    2883              : {
    2884            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2885            0 :   {
    2886            0 :  poly_int64 off0, off1;
    2887            0 :  tree base0, base1;
    2888            0 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
    2889              :  off0, off1,
    2890              : 1
    2891              : );
    2892            0 :       if (equal == 1
    2893              : )
    2894              :         {
    2895            0 :           if (minmax == MIN_EXPR
    2896              : )
    2897              :             {
    2898            0 :               if (known_le (off0, off1)
    2899              : )
    2900              :                 {
    2901            0 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail926;
    2902            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail926;
    2903            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail926;
    2904            0 :                   {
    2905            0 :                     tree _r;
    2906            0 :                     _r = captures[0];
    2907            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 733, __FILE__, __LINE__, true);
    2908            0 :                     return _r;
    2909              :                   }
    2910            0 : next_after_fail926:;
    2911              :                 }
    2912              :               else
    2913              :                 {
    2914            0 :                   if (known_gt (off0, off1)
    2915              : )
    2916              :                     {
    2917            0 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail927;
    2918            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail927;
    2919            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail927;
    2920            0 :                       {
    2921            0 :                         tree _r;
    2922            0 :                         _r = captures[2];
    2923            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 734, __FILE__, __LINE__, true);
    2924            0 :                         return _r;
    2925              :                       }
    2926            0 : next_after_fail927:;
    2927              :                     }
    2928              :                 }
    2929              :             }
    2930              :           else
    2931              :             {
    2932            0 :               if (known_ge (off0, off1)
    2933              : )
    2934              :                 {
    2935            0 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail928;
    2936            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail928;
    2937            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail928;
    2938            0 :                   {
    2939            0 :                     tree _r;
    2940            0 :                     _r = captures[0];
    2941            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 735, __FILE__, __LINE__, true);
    2942            0 :                     return _r;
    2943              :                   }
    2944            0 : next_after_fail928:;
    2945              :                 }
    2946              :               else
    2947              :                 {
    2948            0 :                   if (known_lt (off0, off1)
    2949              : )
    2950              :                     {
    2951            0 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail929;
    2952            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail929;
    2953            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail929;
    2954            0 :                       {
    2955            0 :                         tree _r;
    2956            0 :                         _r = captures[2];
    2957            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 736, __FILE__, __LINE__, true);
    2958            0 :                         return _r;
    2959              :                       }
    2960            0 : next_after_fail929:;
    2961              :                     }
    2962              :                 }
    2963              :             }
    2964              :         }
    2965              :   }
    2966            0 :   return NULL_TREE;
    2967              : }
    2968              : 
    2969              : tree
    2970            0 : generic_simplify_549 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2971              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2972              :  const combined_fn ARG_UNUSED (cond_len_op))
    2973              : {
    2974            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2975            0 :   {
    2976            0 :  tree op_type = TREE_TYPE (captures[5]);
    2977            0 :       if (inverse_conditions_p (captures[0], captures[2])
    2978            0 :  && element_precision (type) == element_precision (op_type)
    2979              : )
    2980              :         {
    2981            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail956;
    2982            0 :           {
    2983            0 :             tree res_op0;
    2984            0 :             {
    2985            0 :               tree _o1[6], _r1;
    2986            0 :               _o1[0] = captures[2];
    2987            0 :               _o1[1] = captures[3];
    2988            0 :               _o1[2] = captures[4];
    2989            0 :               {
    2990            0 :                 tree _o2[1], _r2;
    2991            0 :                 _o2[0] = captures[1];
    2992            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    2993              :                   {
    2994            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    2995              :                   }
    2996              :                 else
    2997              :                   _r2 = _o2[0];
    2998            0 :                 _o1[3] = _r2;
    2999              :               }
    3000            0 :               _o1[4] = captures[6];
    3001            0 :               _o1[5] = captures[7];
    3002            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 6, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5]);
    3003            0 :               if (!_r1)
    3004            0 :                 goto next_after_fail956;
    3005            0 :               res_op0 = _r1;
    3006              :             }
    3007            0 :             tree _r;
    3008            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3009            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    3010            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3011            0 :             if (TREE_SIDE_EFFECTS (captures[5]))
    3012            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
    3013            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 750, __FILE__, __LINE__, true);
    3014            0 :             return _r;
    3015              :           }
    3016              : next_after_fail956:;
    3017              :         }
    3018              :   }
    3019              :   return NULL_TREE;
    3020              : }
    3021              : 
    3022              : tree
    3023            0 : generic_simplify_562 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3024              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    3025              :  const enum tree_code ARG_UNUSED (cmp))
    3026              : {
    3027            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3028            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail972;
    3029            0 :   {
    3030            0 :     tree res_op0;
    3031            0 :     res_op0 = unshare_expr (captures[0]);
    3032            0 :     tree res_op1;
    3033            0 :     res_op1 = captures[0];
    3034            0 :     tree _r;
    3035            0 :     _r = fold_build2_loc (loc, UNORDERED_EXPR, type, res_op0, res_op1);
    3036            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 766, __FILE__, __LINE__, true);
    3037              :     return _r;
    3038              :   }
    3039            0 : next_after_fail972:;
    3040            0 :   return NULL_TREE;
    3041              : }
    3042              : 
    3043              : tree
    3044            0 : generic_simplify_568 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3045              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3046              :  const combined_fn ARG_UNUSED (logs),
    3047              :  const combined_fn ARG_UNUSED (pows))
    3048              : {
    3049            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3050            0 :   if (flag_unsafe_math_optimizations
    3051              : )
    3052              :     {
    3053            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail978;
    3054            0 :       {
    3055            0 :         tree res_op0;
    3056            0 :         res_op0 = captures[1];
    3057            0 :         tree res_op1;
    3058            0 :         {
    3059            0 :           tree _o1[1], _r1;
    3060            0 :           _o1[0] = captures[0];
    3061            0 :           _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3062            0 :           if (!_r1)
    3063            0 :             goto next_after_fail978;
    3064            0 :           res_op1 = _r1;
    3065              :         }
    3066            0 :         tree _r;
    3067            0 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    3068            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 772, __FILE__, __LINE__, true);
    3069            0 :         return _r;
    3070              :       }
    3071              : next_after_fail978:;
    3072              :     }
    3073              :   return NULL_TREE;
    3074              : }
    3075              : 
    3076              : tree
    3077            0 : generic_simplify_576 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3078              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3079              :  const combined_fn ARG_UNUSED (floors),
    3080              :  const combined_fn ARG_UNUSED (truncs))
    3081              : {
    3082            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3083            0 :   if (canonicalize_math_p ()
    3084              : )
    3085              :     {
    3086            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail986;
    3087            0 :       {
    3088            0 :         tree res_op0;
    3089            0 :         res_op0 = captures[0];
    3090            0 :         tree _r;
    3091            0 :         _r = maybe_build_call_expr_loc (loc, truncs, type, 1, res_op0);
    3092            0 :         if (!_r)
    3093            0 :           goto next_after_fail986;
    3094            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 780, __FILE__, __LINE__, true);
    3095            0 :         return _r;
    3096              :       }
    3097              : next_after_fail986:;
    3098              :     }
    3099              :   return NULL_TREE;
    3100              : }
    3101              : 
    3102              : tree
    3103            0 : generic_simplify_583 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3104              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3105              :  const combined_fn ARG_UNUSED (ifn),
    3106              :  const combined_fn ARG_UNUSED (lfn),
    3107              :  const combined_fn ARG_UNUSED (llfn))
    3108              : {
    3109            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3110            0 :   if (canonicalize_math_p ()
    3111              : )
    3112              :     {
    3113            0 :       if (TYPE_PRECISION (integer_type_node)
    3114            0 :  == TYPE_PRECISION (long_integer_type_node)
    3115              : )
    3116              :         {
    3117            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail993;
    3118            0 :           {
    3119            0 :             tree res_op0;
    3120            0 :             res_op0 = captures[0];
    3121            0 :             tree _r;
    3122            0 :             _r = maybe_build_call_expr_loc (loc, lfn, type, 1, res_op0);
    3123            0 :             if (!_r)
    3124            0 :               goto next_after_fail993;
    3125            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 787, __FILE__, __LINE__, true);
    3126            0 :             return _r;
    3127              :           }
    3128              : next_after_fail993:;
    3129              :         }
    3130              :     }
    3131              :   return NULL_TREE;
    3132              : }
    3133              : 
    3134              : tree
    3135            0 : generic_simplify_593 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3136              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    3137              : {
    3138            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3139            0 :   if (canonicalize_math_after_vectorization_p ()
    3140              : )
    3141              :     {
    3142              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1003;
    3143              :       {
    3144              :         tree res_op0;
    3145              :         res_op0 = captures[0];
    3146              :         tree res_op1;
    3147              :         res_op1 = captures[1];
    3148              :         tree res_op2;
    3149              :         res_op2 = captures[2];
    3150              :         tree _r;
    3151              :         _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
    3152              :         if (!_r)
    3153              :           goto next_after_fail1003;
    3154              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 797, __FILE__, __LINE__, true);
    3155              :         return _r;
    3156              :       }
    3157            0 : next_after_fail1003:;
    3158              :     }
    3159            0 :   return NULL_TREE;
    3160              : }
    3161              : 
    3162              : tree
    3163            0 : generic_simplify_602 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3164              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
    3165              : {
    3166            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3167            0 :   if (canonicalize_math_after_vectorization_p ()
    3168              : )
    3169              :     {
    3170              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1012;
    3171              :       {
    3172              :         tree res_op0;
    3173              :         res_op0 = captures[0];
    3174              :         tree res_op1;
    3175              :         res_op1 = captures[1];
    3176              :         tree res_op2;
    3177              :         res_op2 = captures[2];
    3178              :         tree res_op3;
    3179              :         res_op3 = captures[3];
    3180              :         tree res_op4;
    3181              :         res_op4 = captures[4];
    3182              :         tree _r;
    3183              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3184              :         if (!_r)
    3185              :           goto next_after_fail1012;
    3186              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 806, __FILE__, __LINE__, true);
    3187              :         return _r;
    3188              :       }
    3189            0 : next_after_fail1012:;
    3190              :     }
    3191            0 :   return NULL_TREE;
    3192              : }
    3193              : 
    3194              : tree
    3195            0 : generic_simplify_611 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3196              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3197              :  const enum tree_code ARG_UNUSED (rot),
    3198              :  const combined_fn ARG_UNUSED (popcount))
    3199              : {
    3200            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3201            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3202            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3203            0 :  && (
    3204              : 
    3205            0 :  || !TREE_SIDE_EFFECTS (captures[3]))
    3206              : )
    3207              :     {
    3208            0 :       {
    3209            0 :  tree type0 = TREE_TYPE (captures[0]);
    3210            0 :  tree type1 = TREE_TYPE (captures[1]);
    3211            0 :  unsigned int prec0 = TYPE_PRECISION (type0);
    3212            0 :  unsigned int prec1 = TYPE_PRECISION (type1);
    3213            0 :           if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
    3214              : )
    3215              :             {
    3216            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1021;
    3217            0 :               {
    3218            0 :                 tree res_op0;
    3219            0 :                 {
    3220            0 :                   tree _o1[1], _r1;
    3221            0 :                   _o1[0] = captures[2];
    3222            0 :                   if (TREE_TYPE (_o1[0]) != type0)
    3223              :                     {
    3224            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3225              :                     }
    3226              :                   else
    3227              :                     _r1 = _o1[0];
    3228            0 :                   res_op0 = _r1;
    3229              :                 }
    3230            0 :                 tree _r;
    3231            0 :                 _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
    3232            0 :                 if (!_r)
    3233            0 :                   goto next_after_fail1021;
    3234            0 :                 if (TREE_SIDE_EFFECTS (captures[3]))
    3235            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3236            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 812, __FILE__, __LINE__, true);
    3237            0 :                 return _r;
    3238              :               }
    3239              : next_after_fail1021:;
    3240              :             }
    3241              :       }
    3242              :     }
    3243              :   return NULL_TREE;
    3244              : }
    3245              : 
    3246              : tree
    3247            0 : generic_simplify_622 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3248              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3249              :  const combined_fn ARG_UNUSED (reduc))
    3250              : {
    3251            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3252            0 :   {
    3253            0 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
    3254            0 :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
    3255            0 :  tree elt = ctor_single_nonzero_element (ctor);
    3256            0 :       if (elt
    3257            0 :  && types_match (type, TREE_TYPE (elt))
    3258            0 :  && !HONOR_SNANS (type)
    3259            0 :  && !HONOR_SIGNED_ZEROS (type)
    3260              : )
    3261              :         {
    3262            0 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1033;
    3263            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1033;
    3264            0 :           {
    3265            0 :             tree _r;
    3266            0 :             _r =  elt;
    3267            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 820, __FILE__, __LINE__, true);
    3268            0 :             return _r;
    3269              :           }
    3270              : next_after_fail1033:;
    3271              :         }
    3272              :   }
    3273              :   return NULL_TREE;
    3274              : }
    3275              : 
    3276              : tree
    3277      6409896 : generic_simplify_FLOAT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3278              : {
    3279      6409896 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3280      6409896 :   {
    3281      6409896 :     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3282     12819792 :     if ((
    3283              : 
    3284              :  && useless_type_conversion_p (type, TREE_TYPE (captures[0])))
    3285              :  || (
    3286              : 1
    3287      6409896 :  && type == TREE_TYPE (captures[0]))
    3288              : )
    3289              :       {
    3290            0 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1100;
    3291            0 :         {
    3292            0 :           tree _r;
    3293            0 :           _r = captures[0];
    3294            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 834, __FILE__, __LINE__, true);
    3295            0 :           return _r;
    3296              :         }
    3297            0 : next_after_fail1100:;
    3298              :       }
    3299              :   }
    3300      6409896 :   switch (TREE_CODE (_p0))
    3301              :     {
    3302       547637 :     CASE_CONVERT:
    3303       547637 :       {
    3304       547637 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3305       547637 :         {
    3306       547637 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3307       547637 :           {
    3308       547637 :  tree inside_type = TREE_TYPE (captures[1]);
    3309       547637 :  tree inter_type = TREE_TYPE (captures[0]);
    3310       547637 :  int inside_int = INTEGRAL_TYPE_P (inside_type);
    3311       547637 :  int inside_ptr = POINTER_TYPE_P (inside_type);
    3312       547637 :  int inside_float = FLOAT_TYPE_P (inside_type);
    3313       547637 :  int inside_vec = VECTOR_TYPE_P (inside_type);
    3314       547637 :  unsigned int inside_prec = element_precision (inside_type);
    3315       547637 :  int inside_unsignedp = TYPE_UNSIGNED (inside_type);
    3316       547637 :  int inter_int = INTEGRAL_TYPE_P (inter_type);
    3317       547637 :  int inter_ptr = POINTER_TYPE_P (inter_type);
    3318       547637 :  int inter_float = FLOAT_TYPE_P (inter_type);
    3319       547637 :  int inter_vec = VECTOR_TYPE_P (inter_type);
    3320       547637 :  unsigned int inter_prec = element_precision (inter_type);
    3321       547637 :  int inter_unsignedp = TYPE_UNSIGNED (inter_type);
    3322       547637 :  int final_int = INTEGRAL_TYPE_P (type);
    3323       547637 :  int final_ptr = POINTER_TYPE_P (type);
    3324       547637 :  int final_float = FLOAT_TYPE_P (type);
    3325       547637 :  int final_vec = VECTOR_TYPE_P (type);
    3326       547637 :  unsigned int final_prec = element_precision (type);
    3327       547637 :  int final_unsignedp = TYPE_UNSIGNED (type);
    3328       547637 :               if (((
    3329              : 
    3330              :  && useless_type_conversion_p (type, inside_type))
    3331              :  || (
    3332              : 1
    3333       547637 :  && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
    3334            0 :  && (((inter_int || inter_ptr) && final_int)
    3335            0 :  || (inter_float && final_float))
    3336       547637 :  && inter_prec >= final_prec
    3337              : )
    3338              :                 {
    3339            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1101;
    3340            0 :                   {
    3341            0 :                     tree res_op0;
    3342            0 :                     res_op0 = captures[1];
    3343            0 :                     tree _r;
    3344            0 :                     _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3345            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 835, __FILE__, __LINE__, true);
    3346            0 :                     return _r;
    3347              :                   }
    3348            0 : next_after_fail1101:;
    3349              :                 }
    3350              :               else
    3351              :                 {
    3352       547637 :                   if (((inter_int && inside_int) || (inter_float && inside_float))
    3353       547631 :  && (final_int || final_float)
    3354       547631 :  && inter_prec >= inside_prec
    3355       546644 :  && (inter_float || inter_unsignedp == inside_unsignedp)
    3356              : )
    3357              :                     {
    3358       544257 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1102;
    3359       544257 :                       {
    3360       544257 :                         tree res_op0;
    3361       544257 :                         res_op0 = captures[1];
    3362       544257 :                         tree _r;
    3363       544257 :                         _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3364       544257 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 836, __FILE__, __LINE__, true);
    3365       544257 :                         return _r;
    3366              :                       }
    3367            0 : next_after_fail1102:;
    3368            0 :                     }
    3369              :                   else
    3370              :                     {
    3371         3380 :                       if (inside_int && inter_int && final_int
    3372            0 :  && ((inside_prec < inter_prec && inter_prec < final_prec
    3373            0 :  && inside_unsignedp && !inter_unsignedp)
    3374            0 :  || final_prec == inter_prec
    3375            0 :  || (inside_prec < inter_prec && inter_prec > final_prec
    3376            0 :  && !inside_unsignedp && inter_unsignedp))
    3377              : )
    3378              :                         {
    3379            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1103;
    3380            0 :                           {
    3381            0 :                             tree res_op0;
    3382            0 :                             res_op0 = captures[1];
    3383            0 :                             tree _r;
    3384            0 :                             _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3385            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 837, __FILE__, __LINE__, true);
    3386            0 :                             return _r;
    3387              :                           }
    3388            0 : next_after_fail1103:;
    3389            0 :                         }
    3390              :                       else
    3391              :                         {
    3392         3380 :                           if (! inside_float && ! inter_float && ! final_float
    3393              :  && ! inside_vec && ! inter_vec && ! final_vec
    3394            0 :  && (inter_prec >= inside_prec || inter_prec >= final_prec)
    3395            0 :  && ! (inside_int && inter_int
    3396            0 :  && inter_unsignedp != inside_unsignedp
    3397            0 :  && inter_prec < final_prec)
    3398            0 :  && ((inter_unsignedp && inter_prec > inside_prec)
    3399            0 :  == (final_unsignedp && final_prec > inter_prec))
    3400            0 :  && ! (inside_ptr && inter_prec != final_prec)
    3401            0 :  && ! (final_ptr && inside_prec != inter_prec)
    3402              : )
    3403              :                             {
    3404            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1104;
    3405            0 :                               {
    3406            0 :                                 tree res_op0;
    3407            0 :                                 res_op0 = captures[1];
    3408            0 :                                 tree _r;
    3409            0 :                                 _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3410            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 838, __FILE__, __LINE__, true);
    3411            0 :                                 return _r;
    3412              :                               }
    3413            0 : next_after_fail1104:;
    3414            0 :                             }
    3415              :                           else
    3416              :                             {
    3417         3380 :                               if (inside_int && inter_int && final_int
    3418         3374 :  && final_prec <= inside_prec
    3419            0 :  && inter_prec >= inside_prec
    3420              : )
    3421              :                                 {
    3422            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1105;
    3423            0 :                                   {
    3424            0 :                                     tree res_op0;
    3425            0 :                                     res_op0 = captures[1];
    3426            0 :                                     tree _r;
    3427            0 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3428            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 839, __FILE__, __LINE__, true);
    3429            0 :                                     return _r;
    3430              :                                   }
    3431            0 : next_after_fail1105:;
    3432            0 :                                 }
    3433              :                               else
    3434              :                                 {
    3435              :                                   if (0
    3436              :  && final_int && inter_int && inside_int
    3437              :  && final_prec >= inside_prec
    3438              :  && inside_prec > inter_prec
    3439              :  && inter_unsignedp
    3440              : )
    3441              :                                     {
    3442              :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1106;
    3443              :                                       {
    3444              :                                         tree res_op0;
    3445              :                                         {
    3446              :                                           tree _o1[2], _r1;
    3447              :                                           _o1[0] = captures[1];
    3448              :                                           _o1[1] =  wide_int_to_tree
    3449              :  (inside_type,
    3450              :  wi::mask (inter_prec, false,
    3451              :  TYPE_PRECISION (inside_type)));
    3452              :                                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3453              :                                           res_op0 = _r1;
    3454              :                                         }
    3455              :                                         tree _r;
    3456              :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3457              :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 840, __FILE__, __LINE__, true);
    3458              :                                         return _r;
    3459              :                                       }
    3460              : next_after_fail1106:;
    3461              :                                     }
    3462              :                                   else
    3463              :                                     {
    3464              :                                       if (0
    3465              :  && inside_int && inter_float && final_int &&
    3466              :  (unsigned) significand_size (TYPE_MODE (inter_type))
    3467              :  >= inside_prec - !inside_unsignedp
    3468              : )
    3469              :                                         {
    3470              :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1107;
    3471              :                                           {
    3472              :                                             tree res_op0;
    3473              :                                             res_op0 = captures[1];
    3474              :                                             tree _r;
    3475              :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3476              :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 841, __FILE__, __LINE__, true);
    3477              :                                             return _r;
    3478              :                                           }
    3479              : next_after_fail1107:;
    3480              :                                         }
    3481              :                                     }
    3482              :                                 }
    3483              :                             }
    3484              :                         }
    3485              :                     }
    3486              :                 }
    3487              :           }
    3488              :         }
    3489         3380 :         break;
    3490              :       }
    3491            0 :     case FLOAT_EXPR:
    3492            0 :       {
    3493            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3494            0 :         {
    3495            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3496            0 :           {
    3497            0 :  tree inside_type = TREE_TYPE (captures[1]);
    3498            0 :  tree inter_type = TREE_TYPE (captures[0]);
    3499            0 :  int inside_int = INTEGRAL_TYPE_P (inside_type);
    3500            0 :  int inside_ptr = POINTER_TYPE_P (inside_type);
    3501            0 :  int inside_float = FLOAT_TYPE_P (inside_type);
    3502            0 :  int inside_vec = VECTOR_TYPE_P (inside_type);
    3503            0 :  unsigned int inside_prec = element_precision (inside_type);
    3504            0 :  int inside_unsignedp = TYPE_UNSIGNED (inside_type);
    3505            0 :  int inter_int = INTEGRAL_TYPE_P (inter_type);
    3506            0 :  int inter_ptr = POINTER_TYPE_P (inter_type);
    3507            0 :  int inter_float = FLOAT_TYPE_P (inter_type);
    3508            0 :  int inter_vec = VECTOR_TYPE_P (inter_type);
    3509            0 :  unsigned int inter_prec = element_precision (inter_type);
    3510            0 :  int inter_unsignedp = TYPE_UNSIGNED (inter_type);
    3511            0 :  int final_int = INTEGRAL_TYPE_P (type);
    3512            0 :  int final_ptr = POINTER_TYPE_P (type);
    3513            0 :  int final_float = FLOAT_TYPE_P (type);
    3514            0 :  int final_vec = VECTOR_TYPE_P (type);
    3515            0 :  unsigned int final_prec = element_precision (type);
    3516            0 :  int final_unsignedp = TYPE_UNSIGNED (type);
    3517            0 :               if (((
    3518              : 
    3519              :  && useless_type_conversion_p (type, inside_type))
    3520              :  || (
    3521              : 1
    3522            0 :  && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
    3523            0 :  && (((inter_int || inter_ptr) && final_int)
    3524            0 :  || (inter_float && final_float))
    3525            0 :  && inter_prec >= final_prec
    3526              : )
    3527              :                 {
    3528            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1108;
    3529            0 :                   {
    3530            0 :                     tree res_op0;
    3531            0 :                     res_op0 = captures[1];
    3532            0 :                     tree _r;
    3533            0 :                     _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3534            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 835, __FILE__, __LINE__, true);
    3535            0 :                     return _r;
    3536              :                   }
    3537            0 : next_after_fail1108:;
    3538              :                 }
    3539              :               else
    3540              :                 {
    3541            0 :                   if (((inter_int && inside_int) || (inter_float && inside_float))
    3542            0 :  && (final_int || final_float)
    3543            0 :  && inter_prec >= inside_prec
    3544            0 :  && (inter_float || inter_unsignedp == inside_unsignedp)
    3545              : )
    3546              :                     {
    3547            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1109;
    3548            0 :                       {
    3549            0 :                         tree res_op0;
    3550            0 :                         res_op0 = captures[1];
    3551            0 :                         tree _r;
    3552            0 :                         _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3553            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 836, __FILE__, __LINE__, true);
    3554            0 :                         return _r;
    3555              :                       }
    3556            0 : next_after_fail1109:;
    3557            0 :                     }
    3558              :                   else
    3559              :                     {
    3560            0 :                       if (inside_int && inter_int && final_int
    3561            0 :  && ((inside_prec < inter_prec && inter_prec < final_prec
    3562            0 :  && inside_unsignedp && !inter_unsignedp)
    3563            0 :  || final_prec == inter_prec
    3564            0 :  || (inside_prec < inter_prec && inter_prec > final_prec
    3565            0 :  && !inside_unsignedp && inter_unsignedp))
    3566              : )
    3567              :                         {
    3568            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1110;
    3569            0 :                           {
    3570            0 :                             tree res_op0;
    3571            0 :                             res_op0 = captures[1];
    3572            0 :                             tree _r;
    3573            0 :                             _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3574            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 837, __FILE__, __LINE__, true);
    3575            0 :                             return _r;
    3576              :                           }
    3577            0 : next_after_fail1110:;
    3578            0 :                         }
    3579              :                       else
    3580              :                         {
    3581            0 :                           if (! inside_float && ! inter_float && ! final_float
    3582              :  && ! inside_vec && ! inter_vec && ! final_vec
    3583            0 :  && (inter_prec >= inside_prec || inter_prec >= final_prec)
    3584            0 :  && ! (inside_int && inter_int
    3585            0 :  && inter_unsignedp != inside_unsignedp
    3586            0 :  && inter_prec < final_prec)
    3587            0 :  && ((inter_unsignedp && inter_prec > inside_prec)
    3588            0 :  == (final_unsignedp && final_prec > inter_prec))
    3589            0 :  && ! (inside_ptr && inter_prec != final_prec)
    3590            0 :  && ! (final_ptr && inside_prec != inter_prec)
    3591              : )
    3592              :                             {
    3593            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1111;
    3594            0 :                               {
    3595            0 :                                 tree res_op0;
    3596            0 :                                 res_op0 = captures[1];
    3597            0 :                                 tree _r;
    3598            0 :                                 _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3599            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 838, __FILE__, __LINE__, true);
    3600            0 :                                 return _r;
    3601              :                               }
    3602            0 : next_after_fail1111:;
    3603            0 :                             }
    3604              :                           else
    3605              :                             {
    3606            0 :                               if (inside_int && inter_int && final_int
    3607            0 :  && final_prec <= inside_prec
    3608            0 :  && inter_prec >= inside_prec
    3609              : )
    3610              :                                 {
    3611            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1112;
    3612            0 :                                   {
    3613            0 :                                     tree res_op0;
    3614            0 :                                     res_op0 = captures[1];
    3615            0 :                                     tree _r;
    3616            0 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3617            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 839, __FILE__, __LINE__, true);
    3618            0 :                                     return _r;
    3619              :                                   }
    3620            0 : next_after_fail1112:;
    3621            0 :                                 }
    3622              :                               else
    3623              :                                 {
    3624              :                                   if (0
    3625              :  && final_int && inter_int && inside_int
    3626              :  && final_prec >= inside_prec
    3627              :  && inside_prec > inter_prec
    3628              :  && inter_unsignedp
    3629              : )
    3630              :                                     {
    3631              :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1113;
    3632              :                                       {
    3633              :                                         tree res_op0;
    3634              :                                         {
    3635              :                                           tree _o1[2], _r1;
    3636              :                                           _o1[0] = captures[1];
    3637              :                                           _o1[1] =  wide_int_to_tree
    3638              :  (inside_type,
    3639              :  wi::mask (inter_prec, false,
    3640              :  TYPE_PRECISION (inside_type)));
    3641              :                                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3642              :                                           res_op0 = _r1;
    3643              :                                         }
    3644              :                                         tree _r;
    3645              :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3646              :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 840, __FILE__, __LINE__, true);
    3647              :                                         return _r;
    3648              :                                       }
    3649              : next_after_fail1113:;
    3650              :                                     }
    3651              :                                   else
    3652              :                                     {
    3653              :                                       if (0
    3654              :  && inside_int && inter_float && final_int &&
    3655              :  (unsigned) significand_size (TYPE_MODE (inter_type))
    3656              :  >= inside_prec - !inside_unsignedp
    3657              : )
    3658              :                                         {
    3659              :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1114;
    3660              :                                           {
    3661              :                                             tree res_op0;
    3662              :                                             res_op0 = captures[1];
    3663              :                                             tree _r;
    3664              :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3665              :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 841, __FILE__, __LINE__, true);
    3666              :                                             return _r;
    3667              :                                           }
    3668              : next_after_fail1114:;
    3669              :                                         }
    3670              :                                     }
    3671              :                                 }
    3672              :                             }
    3673              :                         }
    3674              :                     }
    3675              :                 }
    3676              :           }
    3677              :         }
    3678            0 :         break;
    3679              :       }
    3680              :     default:;
    3681              :     }
    3682              :   return NULL_TREE;
    3683              : }
    3684              : 
    3685              : tree
    3686     32685241 : generic_simplify_MINUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    3687              : {
    3688     32685241 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3689     32685241 :   if (integer_zerop (_p1))
    3690              :     {
    3691      1995893 :       {
    3692      1995893 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3693      1995893 :         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1268;
    3694      1995893 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1268;
    3695      1995893 :         {
    3696      1995893 :           tree res_op0;
    3697      1995893 :           res_op0 = captures[0];
    3698      1995893 :           tree _r;
    3699      1995893 :           _r = non_lvalue_loc (loc, res_op0);
    3700      1995893 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
    3701      1995893 :           return _r;
    3702              :         }
    3703              : next_after_fail1268:;
    3704              :       }
    3705              :     }
    3706     30689348 :   if (real_zerop (_p1))
    3707              :     {
    3708         1140 :       {
    3709         1140 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3710         1140 :         if (fold_real_zero_addition_p (type, captures[0], captures[1], 1)
    3711              : )
    3712              :           {
    3713          752 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1269;
    3714          752 :             {
    3715          752 :               tree res_op0;
    3716          752 :               res_op0 = captures[0];
    3717          752 :               tree _r;
    3718          752 :               _r = non_lvalue_loc (loc, res_op0);
    3719          752 :               if (TREE_SIDE_EFFECTS (captures[1]))
    3720            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3721          752 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
    3722          752 :               return _r;
    3723              :             }
    3724            0 : next_after_fail1269:;
    3725              :           }
    3726              :       }
    3727              :     }
    3728     30688596 :   switch (TREE_CODE (_p0))
    3729              :     {
    3730      2271492 :     case PLUS_EXPR:
    3731      2271492 :       {
    3732      2271492 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3733      2271492 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3734      2271492 :         switch (TREE_CODE (_q21))
    3735              :           {
    3736       149771 :           case REAL_CST:
    3737       149771 :             {
    3738       149771 :               switch (TREE_CODE (_p1))
    3739              :                 {
    3740           11 :                 case REAL_CST:
    3741           11 :                   {
    3742           11 :                     {
    3743           11 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3744           11 :                       tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR);
    3745           11 :                       if (res) return res;
    3746              :                     }
    3747            8 :                     break;
    3748              :                   }
    3749              :                 default:;
    3750              :                 }
    3751              :               break;
    3752              :             }
    3753              :           default:;
    3754              :           }
    3755              :         break;
    3756              :       }
    3757      1212332 :     case MINUS_EXPR:
    3758      1212332 :       {
    3759      1212332 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3760      1212332 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3761      1212332 :         switch (TREE_CODE (_q21))
    3762              :           {
    3763        94154 :           case REAL_CST:
    3764        94154 :             {
    3765        94154 :               switch (TREE_CODE (_p1))
    3766              :                 {
    3767           40 :                 case REAL_CST:
    3768           40 :                   {
    3769           40 :                     {
    3770           40 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3771           40 :                       tree res = generic_simplify_55 (loc, type, _p0, _p1, captures, MINUS_EXPR, MINUS_EXPR);
    3772           40 :                       if (res) return res;
    3773              :                     }
    3774           38 :                     break;
    3775              :                   }
    3776              :                 default:;
    3777              :                 }
    3778              :               break;
    3779              :             }
    3780              :           default:;
    3781              :           }
    3782              :         break;
    3783              :       }
    3784     30688591 :     default:;
    3785              :     }
    3786     30688591 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    3787              :     {
    3788       206615 :       {
    3789       206615 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3790       205873 :         if (!FLOAT_TYPE_P (type)
    3791       206643 :  || (!tree_expr_maybe_nan_p (captures[0])
    3792          107 :  && !tree_expr_maybe_infinite_p (captures[0])
    3793           15 :  && (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
    3794            1 :  || !HONOR_SIGNED_ZEROS (type)))
    3795              : )
    3796              :           {
    3797       205859 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1270;
    3798       205859 :             {
    3799       205859 :               tree _r;
    3800       205859 :               _r =  build_zero_cst (type);
    3801       205859 :               if (TREE_SIDE_EFFECTS (captures[0]))
    3802           36 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3803       205859 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 912, __FILE__, __LINE__, true);
    3804       205859 :               return _r;
    3805              :             }
    3806            0 : next_after_fail1270:;
    3807              :           }
    3808              :       }
    3809              :     }
    3810     30482732 :   switch (TREE_CODE (_p0))
    3811              :     {
    3812      8384775 :     CASE_CONVERT:
    3813      8384775 :       {
    3814      8384775 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3815      8384775 :         switch (TREE_CODE (_p1))
    3816              :           {
    3817      4153241 :           CASE_CONVERT:
    3818      4153241 :             {
    3819      4153241 :               tree _q40 = TREE_OPERAND (_p1, 0);
    3820      4153241 :               switch (TREE_CODE (_q40))
    3821              :                 {
    3822       102358 :                 case MULT_EXPR:
    3823       102358 :                   {
    3824       102358 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3825       102358 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    3826       102358 :                     switch (TREE_CODE (_q50))
    3827              :                       {
    3828           21 :                       case TRUNC_DIV_EXPR:
    3829           21 :                         {
    3830           21 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    3831           21 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    3832           21 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q20, 0))
    3833              :                             {
    3834           21 :                               if ((_q51 == _q61 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q61, 0))
    3835              :                                 {
    3836           21 :                                   {
    3837           21 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q61, _q20, _q61 };
    3838           21 :                                     tree res = generic_simplify_86 (loc, type, _p0, _p1, captures);
    3839           21 :                                     if (res) return res;
    3840              :                                   }
    3841              :                                 }
    3842              :                             }
    3843              :                           break;
    3844              :                         }
    3845       102337 :                       default:;
    3846              :                       }
    3847       102337 :                     switch (TREE_CODE (_q51))
    3848              :                       {
    3849            0 :                       case TRUNC_DIV_EXPR:
    3850            0 :                         {
    3851            0 :                           tree _q70 = TREE_OPERAND (_q51, 0);
    3852            0 :                           tree _q71 = TREE_OPERAND (_q51, 1);
    3853            0 :                           if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q20, 0))
    3854              :                             {
    3855            0 :                               if ((_q71 == _q50 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q50, 0))
    3856              :                                 {
    3857            0 :                                   {
    3858            0 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q70, _q71, _q20, _q50 };
    3859            0 :                                     tree res = generic_simplify_86 (loc, type, _p0, _p1, captures);
    3860            0 :                                     if (res) return res;
    3861              :                                   }
    3862              :                                 }
    3863              :                             }
    3864              :                           break;
    3865              :                         }
    3866              :                       default:;
    3867              :                       }
    3868              :                     break;
    3869              :                   }
    3870              :                 default:;
    3871              :                 }
    3872              :               break;
    3873              :             }
    3874       152545 :           case MULT_EXPR:
    3875       152545 :             {
    3876       152545 :               tree _q40 = TREE_OPERAND (_p1, 0);
    3877       152545 :               tree _q41 = TREE_OPERAND (_p1, 1);
    3878       152545 :               switch (TREE_CODE (_q40))
    3879              :                 {
    3880         1733 :                 case TRUNC_DIV_EXPR:
    3881         1733 :                   {
    3882         1733 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3883         1733 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    3884         1733 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    3885              :                       {
    3886           10 :                         if ((_q41 == _q51 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q51, 0))
    3887              :                           {
    3888           10 :                             {
    3889           10 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q20, _q51 };
    3890           10 :                               tree res = generic_simplify_86 (loc, type, _p0, _p1, captures);
    3891           10 :                               if (res) return res;
    3892              :                             }
    3893              :                           }
    3894              :                       }
    3895              :                     break;
    3896              :                   }
    3897       152535 :                 default:;
    3898              :                 }
    3899       152535 :               switch (TREE_CODE (_q41))
    3900              :                 {
    3901            0 :                 case TRUNC_DIV_EXPR:
    3902            0 :                   {
    3903            0 :                     tree _q60 = TREE_OPERAND (_q41, 0);
    3904            0 :                     tree _q61 = TREE_OPERAND (_q41, 1);
    3905            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q20, 0))
    3906              :                       {
    3907            0 :                         if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || operand_equal_p (_q61, _q40, 0))
    3908              :                           {
    3909            0 :                             {
    3910            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q61, _q20, _q40 };
    3911            0 :                               tree res = generic_simplify_86 (loc, type, _p0, _p1, captures);
    3912            0 :                               if (res) return res;
    3913              :                             }
    3914              :                           }
    3915              :                       }
    3916              :                     break;
    3917              :                   }
    3918              :                 default:;
    3919              :                 }
    3920              :               break;
    3921              :             }
    3922              :           default:;
    3923              :           }
    3924              :         break;
    3925              :       }
    3926     30482701 :     default:;
    3927              :     }
    3928     30482701 :   switch (TREE_CODE (_p1))
    3929              :     {
    3930      7467570 :     CASE_CONVERT:
    3931      7467570 :       {
    3932      7467570 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3933      7467570 :         switch (TREE_CODE (_q30))
    3934              :           {
    3935       136472 :           case MULT_EXPR:
    3936       136472 :             {
    3937       136472 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3938       136472 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3939       136472 :               switch (TREE_CODE (_q40))
    3940              :                 {
    3941           12 :                 case TRUNC_DIV_EXPR:
    3942           12 :                   {
    3943           12 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3944           12 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    3945           12 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _p0, 0))
    3946              :                       {
    3947            2 :                         if ((_q41 == _q51 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q51, 0))
    3948              :                           {
    3949            2 :                             {
    3950            2 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _p0, _q51 };
    3951            2 :                               tree res = generic_simplify_86 (loc, type, _p0, _p1, captures);
    3952            2 :                               if (res) return res;
    3953              :                             }
    3954              :                           }
    3955              :                       }
    3956              :                     break;
    3957              :                   }
    3958       136470 :                 default:;
    3959              :                 }
    3960       136470 :               switch (TREE_CODE (_q41))
    3961              :                 {
    3962            0 :                 case TRUNC_DIV_EXPR:
    3963            0 :                   {
    3964            0 :                     tree _q60 = TREE_OPERAND (_q41, 0);
    3965            0 :                     tree _q61 = TREE_OPERAND (_q41, 1);
    3966            0 :                     if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _p0, 0))
    3967              :                       {
    3968            0 :                         if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || operand_equal_p (_q61, _q40, 0))
    3969              :                           {
    3970            0 :                             {
    3971            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q61, _p0, _q40 };
    3972            0 :                               tree res = generic_simplify_86 (loc, type, _p0, _p1, captures);
    3973            0 :                               if (res) return res;
    3974              :                             }
    3975              :                           }
    3976              :                       }
    3977              :                     break;
    3978              :                   }
    3979              :                 default:;
    3980              :                 }
    3981              :               break;
    3982              :             }
    3983              :           default:;
    3984              :           }
    3985              :         break;
    3986              :       }
    3987      2023183 :     case MULT_EXPR:
    3988      2023183 :       {
    3989      2023183 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3990      2023183 :         tree _q31 = TREE_OPERAND (_p1, 1);
    3991      2023183 :         switch (TREE_CODE (_q30))
    3992              :           {
    3993         2176 :           case TRUNC_DIV_EXPR:
    3994         2176 :             {
    3995         2176 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3996         2176 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3997         2176 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
    3998              :                 {
    3999           52 :                   if ((_q31 == _q41 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _q41, 0))
    4000              :                     {
    4001           52 :                       {
    4002           52 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _p0, _q41 };
    4003           52 :                         tree res = generic_simplify_86 (loc, type, _p0, _p1, captures);
    4004           52 :                         if (res) return res;
    4005              :                       }
    4006              :                     }
    4007              :                 }
    4008              :               break;
    4009              :             }
    4010      2023131 :           default:;
    4011              :           }
    4012      2023131 :         switch (TREE_CODE (_q31))
    4013              :           {
    4014            0 :           case TRUNC_DIV_EXPR:
    4015            0 :             {
    4016            0 :               tree _q50 = TREE_OPERAND (_q31, 0);
    4017            0 :               tree _q51 = TREE_OPERAND (_q31, 1);
    4018            0 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _p0, 0))
    4019              :                 {
    4020            0 :                   if ((_q51 == _q30 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q30, 0))
    4021              :                     {
    4022            0 :                       {
    4023            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _p0, _q30 };
    4024            0 :                         tree res = generic_simplify_86 (loc, type, _p0, _p1, captures);
    4025            0 :                         if (res) return res;
    4026              :                       }
    4027              :                     }
    4028              :                 }
    4029              :               break;
    4030              :             }
    4031              :           default:;
    4032              :           }
    4033              :         break;
    4034              :       }
    4035     30482647 :     default:;
    4036              :     }
    4037     30482647 :   switch (TREE_CODE (_p0))
    4038              :     {
    4039      1838446 :     case MULT_EXPR:
    4040      1838446 :       {
    4041      1838446 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4042      1838446 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4043      1838446 :         switch (TREE_CODE (_q21))
    4044              :           {
    4045          609 :           case PLUS_EXPR:
    4046          609 :             {
    4047          609 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4048          609 :               tree _q41 = TREE_OPERAND (_q21, 1);
    4049          609 :               switch (TREE_CODE (_q40))
    4050              :                 {
    4051            0 :                 case TRUNC_DIV_EXPR:
    4052            0 :                   {
    4053            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    4054            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    4055            0 :                     if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4056              :                       {
    4057            0 :                         if (integer_onep (_q41))
    4058              :                           {
    4059            0 :                             if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    4060              :                               {
    4061            0 :                                 {
    4062            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q50 };
    4063            0 :                                   tree res = generic_simplify_87 (loc, type, _p0, _p1, captures);
    4064            0 :                                   if (res) return res;
    4065              :                                 }
    4066              :                               }
    4067              :                           }
    4068              :                       }
    4069              :                     break;
    4070              :                   }
    4071              :                 default:;
    4072              :                 }
    4073              :               break;
    4074              :             }
    4075      1838446 :           default:;
    4076              :           }
    4077      1838446 :         switch (TREE_CODE (_q20))
    4078              :           {
    4079       102764 :           case PLUS_EXPR:
    4080       102764 :             {
    4081       102764 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4082       102764 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4083       102764 :               switch (TREE_CODE (_q30))
    4084              :                 {
    4085            1 :                 case TRUNC_DIV_EXPR:
    4086            1 :                   {
    4087            1 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    4088            1 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    4089            1 :                     if (integer_onep (_q31))
    4090              :                       {
    4091            1 :                         if ((_q21 == _q41 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q41, 0) && types_match (_q21, _q41)))
    4092              :                           {
    4093            1 :                             if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4094              :                               {
    4095            1 :                                 {
    4096            1 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q20, _q30, _q40 };
    4097            1 :                                   tree res = generic_simplify_87 (loc, type, _p0, _p1, captures);
    4098            1 :                                   if (res) return res;
    4099              :                                 }
    4100              :                               }
    4101              :                           }
    4102              :                       }
    4103              :                     break;
    4104              :                   }
    4105              :                 default:;
    4106              :                 }
    4107              :               break;
    4108              :             }
    4109              :           default:;
    4110              :           }
    4111              :         break;
    4112              :       }
    4113         1266 :     case LSHIFT_EXPR:
    4114         1266 :       {
    4115         1266 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4116         1266 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4117         1266 :         switch (TREE_CODE (_p1))
    4118              :           {
    4119            0 :           case LSHIFT_EXPR:
    4120            0 :             {
    4121            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4122            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4123            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4124              :                 {
    4125            0 :                   {
    4126            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    4127            0 :                     tree res = generic_simplify_57 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    4128            0 :                     if (res) return res;
    4129              :                   }
    4130              :                 }
    4131              :               break;
    4132              :             }
    4133              :           default:;
    4134              :           }
    4135              :         break;
    4136              :       }
    4137         1183 :     case BIT_AND_EXPR:
    4138         1183 :       {
    4139         1183 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4140         1183 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4141         1183 :         switch (TREE_CODE (_q21))
    4142              :           {
    4143            0 :           case BIT_NOT_EXPR:
    4144            0 :             {
    4145            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4146            0 :               switch (TREE_CODE (_p1))
    4147              :                 {
    4148            0 :                 case BIT_AND_EXPR:
    4149            0 :                   {
    4150            0 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4151            0 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    4152            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4153              :                       {
    4154            0 :                         if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
    4155              :                           {
    4156            0 :                             {
    4157            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _p1 };
    4158            0 :                               tree res = generic_simplify_88 (loc, type, _p0, _p1, captures);
    4159            0 :                               if (res) return res;
    4160              :                             }
    4161              :                           }
    4162              :                       }
    4163            0 :                     if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    4164              :                       {
    4165            0 :                         if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
    4166              :                           {
    4167            0 :                             {
    4168            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _p1 };
    4169            0 :                               tree res = generic_simplify_88 (loc, type, _p0, _p1, captures);
    4170            0 :                               if (res) return res;
    4171              :                             }
    4172              :                           }
    4173              :                       }
    4174              :                     break;
    4175              :                   }
    4176              :                 default:;
    4177              :                 }
    4178              :               break;
    4179              :             }
    4180         1183 :           default:;
    4181              :           }
    4182         1183 :         switch (TREE_CODE (_q20))
    4183              :           {
    4184           27 :           case BIT_NOT_EXPR:
    4185           27 :             {
    4186           27 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4187           27 :               switch (TREE_CODE (_p1))
    4188              :                 {
    4189           21 :                 case BIT_AND_EXPR:
    4190           21 :                   {
    4191           21 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4192           21 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    4193           21 :                     if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
    4194              :                       {
    4195            0 :                         if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    4196              :                           {
    4197            0 :                             {
    4198            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q30, _p1 };
    4199            0 :                               tree res = generic_simplify_88 (loc, type, _p0, _p1, captures);
    4200            0 :                               if (res) return res;
    4201              :                             }
    4202              :                           }
    4203              :                       }
    4204           21 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4205              :                       {
    4206           21 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    4207              :                           {
    4208           21 :                             {
    4209           21 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q30, _p1 };
    4210           21 :                               tree res = generic_simplify_88 (loc, type, _p0, _p1, captures);
    4211           21 :                               if (res) return res;
    4212              :                             }
    4213              :                           }
    4214              :                       }
    4215              :                     break;
    4216              :                   }
    4217              :                 default:;
    4218              :                 }
    4219              :               break;
    4220              :             }
    4221         1162 :           default:;
    4222              :           }
    4223         1162 :         switch (TREE_CODE (_q21))
    4224              :           {
    4225         1122 :           case INTEGER_CST:
    4226         1122 :             {
    4227         1122 :               switch (TREE_CODE (_p1))
    4228              :                 {
    4229           22 :                 case BIT_AND_EXPR:
    4230           22 :                   {
    4231           22 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4232           22 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4233           22 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4234              :                       {
    4235            0 :                         switch (TREE_CODE (_q51))
    4236              :                           {
    4237            0 :                           case INTEGER_CST:
    4238            0 :                             {
    4239            0 :                               {
    4240            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    4241            0 :                                 if (~wi::to_wide (captures[2]) == wi::to_wide (captures[4])
    4242              : )
    4243              :                                   {
    4244            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1271;
    4245            0 :                                     {
    4246            0 :                                       if (! tree_invariant_p (captures[4])) goto next_after_fail1271;
    4247            0 :                                       tree res_op0;
    4248            0 :                                       {
    4249            0 :                                         tree _o1[2], _r1;
    4250            0 :                                         _o1[0] = captures[1];
    4251            0 :                                         _o1[1] = unshare_expr (captures[4]);
    4252            0 :                                         _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4253            0 :                                         res_op0 = _r1;
    4254              :                                       }
    4255            0 :                                       tree res_op1;
    4256            0 :                                       res_op1 = captures[4];
    4257            0 :                                       tree _r;
    4258            0 :                                       _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    4259            0 :                                       if (TREE_SIDE_EFFECTS (captures[2]))
    4260            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    4261            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 913, __FILE__, __LINE__, true);
    4262            0 :                                       return _r;
    4263              :                                     }
    4264            0 : next_after_fail1271:;
    4265              :                                   }
    4266              :                               }
    4267            0 :                               break;
    4268              :                             }
    4269              :                           default:;
    4270              :                           }
    4271              :                       }
    4272              :                     break;
    4273              :                   }
    4274              :                 default:;
    4275              :                 }
    4276              :               break;
    4277              :             }
    4278         1162 :           default:;
    4279              :           }
    4280         1162 :         switch (TREE_CODE (_p1))
    4281              :           {
    4282           25 :           case BIT_AND_EXPR:
    4283           25 :             {
    4284           25 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4285           25 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4286           25 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4287              :                 {
    4288            0 :                   switch (TREE_CODE (_q51))
    4289              :                     {
    4290            0 :                     case BIT_NOT_EXPR:
    4291            0 :                       {
    4292            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4293            0 :                         if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
    4294              :                           {
    4295            0 :                             {
    4296            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    4297            0 :                               tree res = generic_simplify_89 (loc, type, _p0, _p1, captures);
    4298            0 :                               if (res) return res;
    4299              :                             }
    4300              :                           }
    4301              :                         break;
    4302              :                       }
    4303              :                     default:;
    4304              :                     }
    4305              :                 }
    4306           25 :               switch (TREE_CODE (_q50))
    4307              :                 {
    4308            0 :                 case BIT_NOT_EXPR:
    4309            0 :                   {
    4310            0 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    4311            0 :                     if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
    4312              :                       {
    4313            0 :                         if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4314              :                           {
    4315            0 :                             {
    4316            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    4317            0 :                               tree res = generic_simplify_89 (loc, type, _p0, _p1, captures);
    4318            0 :                               if (res) return res;
    4319              :                             }
    4320              :                           }
    4321              :                       }
    4322            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4323              :                       {
    4324            0 :                         if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4325              :                           {
    4326            0 :                             {
    4327            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
    4328            0 :                               tree res = generic_simplify_89 (loc, type, _p0, _p1, captures);
    4329            0 :                               if (res) return res;
    4330              :                             }
    4331              :                           }
    4332              :                       }
    4333              :                     break;
    4334              :                   }
    4335           25 :                 default:;
    4336              :                 }
    4337           25 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4338              :                 {
    4339            0 :                   switch (TREE_CODE (_q51))
    4340              :                     {
    4341            0 :                     case BIT_NOT_EXPR:
    4342            0 :                       {
    4343            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4344            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4345              :                           {
    4346            0 :                             {
    4347            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
    4348            0 :                               tree res = generic_simplify_89 (loc, type, _p0, _p1, captures);
    4349            0 :                               if (res) return res;
    4350              :                             }
    4351              :                           }
    4352              :                         break;
    4353              :                       }
    4354              :                     default:;
    4355              :                     }
    4356              :                 }
    4357              :               break;
    4358              :             }
    4359            2 :           case PLUS_EXPR:
    4360            2 :             {
    4361            2 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4362            2 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4363            2 :               switch (TREE_CODE (_q50))
    4364              :                 {
    4365            2 :                 case BIT_IOR_EXPR:
    4366            2 :                   {
    4367            2 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    4368            2 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    4369            2 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4370              :                       {
    4371            2 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    4372              :                           {
    4373            2 :                             if (integer_onep (_q51))
    4374              :                               {
    4375            2 :                                 {
    4376            2 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4377            2 :                                   tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    4378            2 :                                   if (res) return res;
    4379              :                                 }
    4380              :                               }
    4381              :                           }
    4382              :                       }
    4383            0 :                     if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
    4384              :                       {
    4385            0 :                         if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
    4386              :                           {
    4387            0 :                             if (integer_onep (_q51))
    4388              :                               {
    4389            0 :                                 {
    4390            0 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4391            0 :                                   tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    4392            0 :                                   if (res) return res;
    4393              :                                 }
    4394              :                               }
    4395              :                           }
    4396              :                       }
    4397              :                     break;
    4398              :                   }
    4399            0 :                 default:;
    4400              :                 }
    4401            0 :             {
    4402            0 :               tree _q50_pops[1];
    4403            0 :               if (tree_nop_convert (_q50, _q50_pops))
    4404              :                 {
    4405            0 :                   tree _q60 = _q50_pops[0];
    4406            0 :                   switch (TREE_CODE (_q60))
    4407              :                     {
    4408            0 :                     case BIT_IOR_EXPR:
    4409            0 :                       {
    4410            0 :                         tree _q70 = TREE_OPERAND (_q60, 0);
    4411            0 :                         tree _q71 = TREE_OPERAND (_q60, 1);
    4412            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4413              :                           {
    4414            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    4415              :                               {
    4416            0 :                                 if (integer_onep (_q51))
    4417              :                                   {
    4418            0 :                                     {
    4419            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4420            0 :                                       tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    4421            0 :                                       if (res) return res;
    4422              :                                     }
    4423              :                                   }
    4424              :                               }
    4425              :                           }
    4426            0 :                         if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
    4427              :                           {
    4428            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    4429              :                               {
    4430            0 :                                 if (integer_onep (_q51))
    4431              :                                   {
    4432            0 :                                     {
    4433            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4434            0 :                                       tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    4435            0 :                                       if (res) return res;
    4436              :                                     }
    4437              :                                   }
    4438              :                               }
    4439              :                           }
    4440              :                         break;
    4441              :                       }
    4442              :                     default:;
    4443              :                     }
    4444              :                 }
    4445              :             }
    4446            0 :               break;
    4447              :             }
    4448         1160 :           default:;
    4449              :           }
    4450         1160 :       {
    4451         1160 :         tree _p1_pops[1];
    4452         1160 :         if (tree_nop_convert (_p1, _p1_pops))
    4453              :           {
    4454            7 :             tree _q50 = _p1_pops[0];
    4455            7 :             switch (TREE_CODE (_q50))
    4456              :               {
    4457            0 :               case PLUS_EXPR:
    4458            0 :                 {
    4459            0 :                   tree _q60 = TREE_OPERAND (_q50, 0);
    4460            0 :                   tree _q61 = TREE_OPERAND (_q50, 1);
    4461            0 :                   switch (TREE_CODE (_q60))
    4462              :                     {
    4463            0 :                     case BIT_IOR_EXPR:
    4464            0 :                       {
    4465            0 :                         tree _q70 = TREE_OPERAND (_q60, 0);
    4466            0 :                         tree _q71 = TREE_OPERAND (_q60, 1);
    4467            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4468              :                           {
    4469            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    4470              :                               {
    4471            0 :                                 if (integer_onep (_q61))
    4472              :                                   {
    4473            0 :                                     {
    4474            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4475            0 :                                       tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    4476            0 :                                       if (res) return res;
    4477              :                                     }
    4478              :                                   }
    4479              :                               }
    4480              :                           }
    4481            0 :                         if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
    4482              :                           {
    4483            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    4484              :                               {
    4485            0 :                                 if (integer_onep (_q61))
    4486              :                                   {
    4487            0 :                                     {
    4488            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4489            0 :                                       tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    4490            0 :                                       if (res) return res;
    4491              :                                     }
    4492              :                                   }
    4493              :                               }
    4494              :                           }
    4495              :                         break;
    4496              :                       }
    4497            0 :                     default:;
    4498              :                     }
    4499            0 :                 {
    4500            0 :                   tree _q60_pops[1];
    4501            0 :                   if (tree_nop_convert (_q60, _q60_pops))
    4502              :                     {
    4503            0 :                       tree _q70 = _q60_pops[0];
    4504            0 :                       switch (TREE_CODE (_q70))
    4505              :                         {
    4506            0 :                         case BIT_IOR_EXPR:
    4507            0 :                           {
    4508            0 :                             tree _q80 = TREE_OPERAND (_q70, 0);
    4509            0 :                             tree _q81 = TREE_OPERAND (_q70, 1);
    4510            0 :                             if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    4511              :                               {
    4512            0 :                                 if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
    4513              :                                   {
    4514            0 :                                     if (integer_onep (_q61))
    4515              :                                       {
    4516            0 :                                         {
    4517            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4518            0 :                                           tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    4519            0 :                                           if (res) return res;
    4520              :                                         }
    4521              :                                       }
    4522              :                                   }
    4523              :                               }
    4524            0 :                             if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
    4525              :                               {
    4526            0 :                                 if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    4527              :                                   {
    4528            0 :                                     if (integer_onep (_q61))
    4529              :                                       {
    4530            0 :                                         {
    4531            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4532            0 :                                           tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    4533            0 :                                           if (res) return res;
    4534              :                                         }
    4535              :                                       }
    4536              :                                   }
    4537              :                               }
    4538              :                             break;
    4539              :                           }
    4540              :                         default:;
    4541              :                         }
    4542              :                     }
    4543              :                 }
    4544            0 :                   break;
    4545              :                 }
    4546              :               default:;
    4547              :               }
    4548              :           }
    4549              :       }
    4550         1160 :         break;
    4551              :       }
    4552         2857 :     case BIT_NOT_EXPR:
    4553         2857 :       {
    4554         2857 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4555         2857 :         switch (TREE_CODE (_p1))
    4556              :           {
    4557           22 :           case BIT_NOT_EXPR:
    4558           22 :             {
    4559           22 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4560           22 :               {
    4561           22 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    4562           22 :                 if (!TYPE_OVERFLOW_SANITIZED (type)
    4563              : )
    4564              :                   {
    4565            9 :                     {
    4566            9 :  tree utype = unsigned_type_for (type);
    4567            9 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1272;
    4568            9 :                         {
    4569            9 :                           tree res_op0;
    4570            9 :                           {
    4571            9 :                             tree _o1[2], _r1;
    4572            9 :                             {
    4573            9 :                               tree _o2[1], _r2;
    4574            9 :                               _o2[0] = captures[1];
    4575            9 :                               if (TREE_TYPE (_o2[0]) != utype)
    4576              :                                 {
    4577            9 :                                   _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    4578              :                                 }
    4579              :                               else
    4580              :                                 _r2 = _o2[0];
    4581            9 :                               _o1[0] = _r2;
    4582              :                             }
    4583            9 :                             {
    4584            9 :                               tree _o2[1], _r2;
    4585            9 :                               _o2[0] = captures[0];
    4586            9 :                               if (TREE_TYPE (_o2[0]) != utype)
    4587              :                                 {
    4588            9 :                                   _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    4589              :                                 }
    4590              :                               else
    4591              :                                 _r2 = _o2[0];
    4592            9 :                               _o1[1] = _r2;
    4593              :                             }
    4594            9 :                             _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4595            9 :                             res_op0 = _r1;
    4596              :                           }
    4597            9 :                           tree _r;
    4598            9 :                           _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4599            9 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 914, __FILE__, __LINE__, true);
    4600            9 :                           return _r;
    4601              :                         }
    4602            0 : next_after_fail1272:;
    4603              :                     }
    4604              :                   }
    4605              :               }
    4606           13 :               break;
    4607              :             }
    4608              :           default:;
    4609              :           }
    4610              :         break;
    4611              :       }
    4612      2269687 :     case PLUS_EXPR:
    4613      2269687 :       {
    4614      2269687 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4615      2269687 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4616      2269687 :         switch (TREE_CODE (_p1))
    4617              :           {
    4618           14 :           case BIT_IOR_EXPR:
    4619           14 :             {
    4620           14 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4621           14 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4622           14 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4623              :                 {
    4624           13 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4625              :                     {
    4626           13 :                       {
    4627           13 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4628           13 :                         if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
    4629           13 :  && !TYPE_SATURATING (type)
    4630              : )
    4631              :                           {
    4632            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1273;
    4633            0 :                             {
    4634            0 :                               tree res_op0;
    4635            0 :                               res_op0 = captures[0];
    4636            0 :                               tree res_op1;
    4637            0 :                               res_op1 = captures[1];
    4638            0 :                               tree _r;
    4639            0 :                               _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    4640            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 915, __FILE__, __LINE__, true);
    4641            0 :                               return _r;
    4642              :                             }
    4643            0 : next_after_fail1273:;
    4644              :                           }
    4645              :                       }
    4646              :                     }
    4647              :                 }
    4648              :               break;
    4649              :             }
    4650           80 :           case BIT_AND_EXPR:
    4651           80 :             {
    4652           80 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4653           80 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4654           80 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4655              :                 {
    4656           25 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4657              :                     {
    4658           13 :                       {
    4659           13 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4660           13 :                         if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
    4661           13 :  && !TYPE_SATURATING (type)
    4662              : )
    4663              :                           {
    4664            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1274;
    4665            0 :                             {
    4666            0 :                               tree res_op0;
    4667            0 :                               res_op0 = captures[0];
    4668            0 :                               tree res_op1;
    4669            0 :                               res_op1 = captures[1];
    4670            0 :                               tree _r;
    4671            0 :                               _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
    4672            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 916, __FILE__, __LINE__, true);
    4673            0 :                               return _r;
    4674              :                             }
    4675            0 : next_after_fail1274:;
    4676              :                           }
    4677              :                       }
    4678              :                     }
    4679              :                 }
    4680              :               break;
    4681              :             }
    4682      2269687 :           default:;
    4683              :           }
    4684      2269687 :         switch (TREE_CODE (_q20))
    4685              :           {
    4686          593 :           case BIT_AND_EXPR:
    4687          593 :             {
    4688          593 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4689          593 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4690          593 :               if (integer_all_onesp (_q21))
    4691              :                 {
    4692            1 :                   switch (TREE_CODE (_p1))
    4693              :                     {
    4694            1 :                     case BIT_IOR_EXPR:
    4695            1 :                       {
    4696            1 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    4697            1 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    4698            1 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    4699              :                           {
    4700            1 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    4701              :                               {
    4702            1 :                                 {
    4703            1 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    4704            1 :                                   tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    4705            1 :                                   if (res) return res;
    4706              :                                 }
    4707              :                               }
    4708              :                           }
    4709            0 :                         if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    4710              :                           {
    4711            0 :                             if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    4712              :                               {
    4713            0 :                                 {
    4714            0 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
    4715            0 :                                   tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    4716            0 :                                   if (res) return res;
    4717              :                                 }
    4718              :                               }
    4719              :                           }
    4720              :                         break;
    4721              :                       }
    4722            0 :                     default:;
    4723              :                     }
    4724            0 :                 {
    4725            0 :                   tree _p1_pops[1];
    4726            0 :                   if (tree_nop_convert (_p1, _p1_pops))
    4727              :                     {
    4728            0 :                       tree _q70 = _p1_pops[0];
    4729            0 :                       switch (TREE_CODE (_q70))
    4730              :                         {
    4731            0 :                         case BIT_IOR_EXPR:
    4732            0 :                           {
    4733            0 :                             tree _q80 = TREE_OPERAND (_q70, 0);
    4734            0 :                             tree _q81 = TREE_OPERAND (_q70, 1);
    4735            0 :                             if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    4736              :                               {
    4737            0 :                                 if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
    4738              :                                   {
    4739            0 :                                     {
    4740            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    4741            0 :                                       tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    4742            0 :                                       if (res) return res;
    4743              :                                     }
    4744              :                                   }
    4745              :                               }
    4746            0 :                             if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
    4747              :                               {
    4748            0 :                                 if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    4749              :                                   {
    4750            0 :                                     {
    4751            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
    4752            0 :                                       tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    4753            0 :                                       if (res) return res;
    4754              :                                     }
    4755              :                                   }
    4756              :                               }
    4757              :                             break;
    4758              :                           }
    4759              :                         default:;
    4760              :                         }
    4761              :                     }
    4762              :                 }
    4763              :                 }
    4764              :               break;
    4765              :             }
    4766      2269686 :           default:;
    4767              :           }
    4768      2269686 :       {
    4769      2269686 :         tree _q20_pops[1];
    4770      2269686 :         if (tree_nop_convert (_q20, _q20_pops))
    4771              :           {
    4772       540720 :             tree _q30 = _q20_pops[0];
    4773       540720 :             switch (TREE_CODE (_q30))
    4774              :               {
    4775            0 :               case BIT_AND_EXPR:
    4776            0 :                 {
    4777            0 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    4778            0 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    4779            0 :                   if (integer_all_onesp (_q21))
    4780              :                     {
    4781            0 :                       switch (TREE_CODE (_p1))
    4782              :                         {
    4783            0 :                         case BIT_IOR_EXPR:
    4784            0 :                           {
    4785            0 :                             tree _q80 = TREE_OPERAND (_p1, 0);
    4786            0 :                             tree _q81 = TREE_OPERAND (_p1, 1);
    4787            0 :                             if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
    4788              :                               {
    4789            0 :                                 if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
    4790              :                                   {
    4791            0 :                                     {
    4792            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    4793            0 :                                       tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    4794            0 :                                       if (res) return res;
    4795              :                                     }
    4796              :                                   }
    4797              :                               }
    4798            0 :                             if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
    4799              :                               {
    4800            0 :                                 if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
    4801              :                                   {
    4802            0 :                                     {
    4803            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
    4804            0 :                                       tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    4805            0 :                                       if (res) return res;
    4806              :                                     }
    4807              :                                   }
    4808              :                               }
    4809              :                             break;
    4810              :                           }
    4811            0 :                         default:;
    4812              :                         }
    4813            0 :                     {
    4814            0 :                       tree _p1_pops[1];
    4815            0 :                       if (tree_nop_convert (_p1, _p1_pops))
    4816              :                         {
    4817            0 :                           tree _q80 = _p1_pops[0];
    4818            0 :                           switch (TREE_CODE (_q80))
    4819              :                             {
    4820            0 :                             case BIT_IOR_EXPR:
    4821            0 :                               {
    4822            0 :                                 tree _q90 = TREE_OPERAND (_q80, 0);
    4823            0 :                                 tree _q91 = TREE_OPERAND (_q80, 1);
    4824            0 :                                 if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40)))
    4825              :                                   {
    4826            0 :                                     if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
    4827              :                                       {
    4828            0 :                                         {
    4829            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    4830            0 :                                           tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    4831            0 :                                           if (res) return res;
    4832              :                                         }
    4833              :                                       }
    4834              :                                   }
    4835            0 :                                 if ((_q90 == _q41 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q41, 0) && types_match (_q90, _q41)))
    4836              :                                   {
    4837            0 :                                     if ((_q91 == _q40 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q40, 0) && types_match (_q91, _q40)))
    4838              :                                       {
    4839            0 :                                         {
    4840            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
    4841            0 :                                           tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    4842            0 :                                           if (res) return res;
    4843              :                                         }
    4844              :                                       }
    4845              :                                   }
    4846              :                                 break;
    4847              :                               }
    4848              :                             default:;
    4849              :                             }
    4850              :                         }
    4851              :                     }
    4852              :                     }
    4853              :                   break;
    4854              :                 }
    4855              :               default:;
    4856              :               }
    4857              :           }
    4858              :       }
    4859      2269686 :         break;
    4860              :       }
    4861           77 :     case BIT_IOR_EXPR:
    4862           77 :       {
    4863           77 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4864           77 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4865           77 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4866              :           {
    4867            5 :             {
    4868            5 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    4869            5 :               tree res = generic_simplify_92 (loc, type, _p0, _p1, captures);
    4870            5 :               if (res) return res;
    4871              :             }
    4872              :           }
    4873           72 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4874              :           {
    4875            0 :             {
    4876            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    4877            0 :               tree res = generic_simplify_92 (loc, type, _p0, _p1, captures);
    4878            0 :               if (res) return res;
    4879              :             }
    4880              :           }
    4881           72 :         switch (TREE_CODE (_p1))
    4882              :           {
    4883            0 :           case BIT_XOR_EXPR:
    4884            0 :             {
    4885            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4886            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4887            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4888              :                 {
    4889            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4890              :                     {
    4891            0 :                       {
    4892            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4893            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1275;
    4894            0 :                         {
    4895            0 :                           tree res_op0;
    4896            0 :                           res_op0 = captures[0];
    4897            0 :                           tree res_op1;
    4898            0 :                           res_op1 = captures[1];
    4899            0 :                           tree _r;
    4900            0 :                           _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    4901            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 917, __FILE__, __LINE__, true);
    4902            0 :                           return _r;
    4903              :                         }
    4904            0 : next_after_fail1275:;
    4905              :                       }
    4906              :                     }
    4907              :                 }
    4908              :               break;
    4909              :             }
    4910            0 :           case BIT_AND_EXPR:
    4911            0 :             {
    4912            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4913            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4914            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4915              :                 {
    4916            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4917              :                     {
    4918            0 :                       {
    4919            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4920            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1276;
    4921            0 :                         {
    4922            0 :                           tree res_op0;
    4923            0 :                           res_op0 = captures[0];
    4924            0 :                           tree res_op1;
    4925            0 :                           res_op1 = captures[1];
    4926            0 :                           tree _r;
    4927            0 :                           _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    4928            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 918, __FILE__, __LINE__, true);
    4929            0 :                           return _r;
    4930              :                         }
    4931            0 : next_after_fail1276:;
    4932              :                       }
    4933              :                     }
    4934              :                 }
    4935              :               break;
    4936              :             }
    4937              :           default:;
    4938              :           }
    4939              :         break;
    4940              :       }
    4941     30482608 :     default:;
    4942              :     }
    4943     30482608 : {
    4944     30482608 :   tree _p0_pops[1];
    4945     30482608 :   if (tree_nop_convert (_p0, _p0_pops))
    4946              :     {
    4947      7259813 :       tree _q20 = _p0_pops[0];
    4948      7259813 :       switch (TREE_CODE (_q20))
    4949              :         {
    4950      1022894 :         case PLUS_EXPR:
    4951      1022894 :           {
    4952      1022894 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4953      1022894 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4954      1022894 :             switch (TREE_CODE (_q30))
    4955              :               {
    4956            8 :               case BIT_AND_EXPR:
    4957            8 :                 {
    4958            8 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    4959            8 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    4960            8 :                   if (integer_all_onesp (_q31))
    4961              :                     {
    4962            0 :                       switch (TREE_CODE (_p1))
    4963              :                         {
    4964            0 :                         case BIT_IOR_EXPR:
    4965            0 :                           {
    4966            0 :                             tree _q80 = TREE_OPERAND (_p1, 0);
    4967            0 :                             tree _q81 = TREE_OPERAND (_p1, 1);
    4968            0 :                             if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
    4969              :                               {
    4970            0 :                                 if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
    4971              :                                   {
    4972            0 :                                     {
    4973            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
    4974            0 :                                       tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    4975            0 :                                       if (res) return res;
    4976              :                                     }
    4977              :                                   }
    4978              :                               }
    4979            0 :                             if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
    4980              :                               {
    4981            0 :                                 if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
    4982              :                                   {
    4983            0 :                                     {
    4984            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
    4985            0 :                                       tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    4986            0 :                                       if (res) return res;
    4987              :                                     }
    4988              :                                   }
    4989              :                               }
    4990              :                             break;
    4991              :                           }
    4992            0 :                         default:;
    4993              :                         }
    4994            0 :                     {
    4995            0 :                       tree _p1_pops[1];
    4996            0 :                       if (tree_nop_convert (_p1, _p1_pops))
    4997              :                         {
    4998            0 :                           tree _q80 = _p1_pops[0];
    4999            0 :                           switch (TREE_CODE (_q80))
    5000              :                             {
    5001            0 :                             case BIT_IOR_EXPR:
    5002            0 :                               {
    5003            0 :                                 tree _q90 = TREE_OPERAND (_q80, 0);
    5004            0 :                                 tree _q91 = TREE_OPERAND (_q80, 1);
    5005            0 :                                 if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40)))
    5006              :                                   {
    5007            0 :                                     if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
    5008              :                                       {
    5009            0 :                                         {
    5010            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
    5011            0 :                                           tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    5012            0 :                                           if (res) return res;
    5013              :                                         }
    5014              :                                       }
    5015              :                                   }
    5016            0 :                                 if ((_q90 == _q41 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q41, 0) && types_match (_q90, _q41)))
    5017              :                                   {
    5018            0 :                                     if ((_q91 == _q40 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q40, 0) && types_match (_q91, _q40)))
    5019              :                                       {
    5020            0 :                                         {
    5021            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
    5022            0 :                                           tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    5023            0 :                                           if (res) return res;
    5024              :                                         }
    5025              :                                       }
    5026              :                                   }
    5027              :                                 break;
    5028              :                               }
    5029              :                             default:;
    5030              :                             }
    5031              :                         }
    5032              :                     }
    5033              :                     }
    5034              :                   break;
    5035              :                 }
    5036      1022894 :               default:;
    5037              :               }
    5038      1022894 :           {
    5039      1022894 :             tree _q30_pops[1];
    5040      1022894 :             if (tree_nop_convert (_q30, _q30_pops))
    5041              :               {
    5042        43771 :                 tree _q40 = _q30_pops[0];
    5043        43771 :                 switch (TREE_CODE (_q40))
    5044              :                   {
    5045            0 :                   case BIT_AND_EXPR:
    5046            0 :                     {
    5047            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    5048            0 :                       tree _q51 = TREE_OPERAND (_q40, 1);
    5049            0 :                       if (integer_all_onesp (_q31))
    5050              :                         {
    5051            0 :                           switch (TREE_CODE (_p1))
    5052              :                             {
    5053            0 :                             case BIT_IOR_EXPR:
    5054            0 :                               {
    5055            0 :                                 tree _q90 = TREE_OPERAND (_p1, 0);
    5056            0 :                                 tree _q91 = TREE_OPERAND (_p1, 1);
    5057            0 :                                 if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    5058              :                                   {
    5059            0 :                                     if ((_q91 == _q51 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q51, 0) && types_match (_q91, _q51)))
    5060              :                                       {
    5061            0 :                                         {
    5062            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
    5063            0 :                                           tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    5064            0 :                                           if (res) return res;
    5065              :                                         }
    5066              :                                       }
    5067              :                                   }
    5068            0 :                                 if ((_q90 == _q51 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q51, 0) && types_match (_q90, _q51)))
    5069              :                                   {
    5070            0 :                                     if ((_q91 == _q50 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q50, 0) && types_match (_q91, _q50)))
    5071              :                                       {
    5072            0 :                                         {
    5073            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
    5074            0 :                                           tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    5075            0 :                                           if (res) return res;
    5076              :                                         }
    5077              :                                       }
    5078              :                                   }
    5079              :                                 break;
    5080              :                               }
    5081            0 :                             default:;
    5082              :                             }
    5083            0 :                         {
    5084            0 :                           tree _p1_pops[1];
    5085            0 :                           if (tree_nop_convert (_p1, _p1_pops))
    5086              :                             {
    5087            0 :                               tree _q90 = _p1_pops[0];
    5088            0 :                               switch (TREE_CODE (_q90))
    5089              :                                 {
    5090            0 :                                 case BIT_IOR_EXPR:
    5091            0 :                                   {
    5092            0 :                                     tree _q100 = TREE_OPERAND (_q90, 0);
    5093            0 :                                     tree _q101 = TREE_OPERAND (_q90, 1);
    5094            0 :                                     if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50)))
    5095              :                                       {
    5096            0 :                                         if ((_q101 == _q51 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q51, 0) && types_match (_q101, _q51)))
    5097              :                                           {
    5098            0 :                                             {
    5099            0 :                                               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
    5100            0 :                                               tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    5101            0 :                                               if (res) return res;
    5102              :                                             }
    5103              :                                           }
    5104              :                                       }
    5105            0 :                                     if ((_q100 == _q51 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q51, 0) && types_match (_q100, _q51)))
    5106              :                                       {
    5107            0 :                                         if ((_q101 == _q50 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q50, 0) && types_match (_q101, _q50)))
    5108              :                                           {
    5109            0 :                                             {
    5110            0 :                                               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
    5111            0 :                                               tree res = generic_simplify_91 (loc, type, _p0, _p1, captures);
    5112            0 :                                               if (res) return res;
    5113              :                                             }
    5114              :                                           }
    5115              :                                       }
    5116              :                                     break;
    5117              :                                   }
    5118              :                                 default:;
    5119              :                                 }
    5120              :                             }
    5121              :                         }
    5122              :                         }
    5123              :                       break;
    5124              :                     }
    5125              :                   default:;
    5126              :                   }
    5127              :               }
    5128              :           }
    5129      1022894 :             break;
    5130              :           }
    5131           14 :         case BIT_AND_EXPR:
    5132           14 :           {
    5133           14 :             tree _q30 = TREE_OPERAND (_q20, 0);
    5134           14 :             tree _q31 = TREE_OPERAND (_q20, 1);
    5135           14 :             switch (TREE_CODE (_p1))
    5136              :               {
    5137            0 :               case PLUS_EXPR:
    5138            0 :                 {
    5139            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    5140            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    5141            0 :                   switch (TREE_CODE (_q60))
    5142              :                     {
    5143            0 :                     case BIT_IOR_EXPR:
    5144            0 :                       {
    5145            0 :                         tree _q70 = TREE_OPERAND (_q60, 0);
    5146            0 :                         tree _q71 = TREE_OPERAND (_q60, 1);
    5147            0 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    5148              :                           {
    5149            0 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    5150              :                               {
    5151            0 :                                 if (integer_onep (_q61))
    5152              :                                   {
    5153            0 :                                     {
    5154            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    5155            0 :                                       tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    5156            0 :                                       if (res) return res;
    5157              :                                     }
    5158              :                                   }
    5159              :                               }
    5160              :                           }
    5161            0 :                         if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    5162              :                           {
    5163            0 :                             if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    5164              :                               {
    5165            0 :                                 if (integer_onep (_q61))
    5166              :                                   {
    5167            0 :                                     {
    5168            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    5169            0 :                                       tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    5170            0 :                                       if (res) return res;
    5171              :                                     }
    5172              :                                   }
    5173              :                               }
    5174              :                           }
    5175              :                         break;
    5176              :                       }
    5177            0 :                     default:;
    5178              :                     }
    5179            0 :                 {
    5180            0 :                   tree _q60_pops[1];
    5181            0 :                   if (tree_nop_convert (_q60, _q60_pops))
    5182              :                     {
    5183            0 :                       tree _q70 = _q60_pops[0];
    5184            0 :                       switch (TREE_CODE (_q70))
    5185              :                         {
    5186            0 :                         case BIT_IOR_EXPR:
    5187            0 :                           {
    5188            0 :                             tree _q80 = TREE_OPERAND (_q70, 0);
    5189            0 :                             tree _q81 = TREE_OPERAND (_q70, 1);
    5190            0 :                             if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    5191              :                               {
    5192            0 :                                 if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
    5193              :                                   {
    5194            0 :                                     if (integer_onep (_q61))
    5195              :                                       {
    5196            0 :                                         {
    5197            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    5198            0 :                                           tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    5199            0 :                                           if (res) return res;
    5200              :                                         }
    5201              :                                       }
    5202              :                                   }
    5203              :                               }
    5204            0 :                             if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
    5205              :                               {
    5206            0 :                                 if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    5207              :                                   {
    5208            0 :                                     if (integer_onep (_q61))
    5209              :                                       {
    5210            0 :                                         {
    5211            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    5212            0 :                                           tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    5213            0 :                                           if (res) return res;
    5214              :                                         }
    5215              :                                       }
    5216              :                                   }
    5217              :                               }
    5218              :                             break;
    5219              :                           }
    5220              :                         default:;
    5221              :                         }
    5222              :                     }
    5223              :                 }
    5224            0 :                   break;
    5225              :                 }
    5226           14 :               default:;
    5227              :               }
    5228           14 :           {
    5229           14 :             tree _p1_pops[1];
    5230           14 :             if (tree_nop_convert (_p1, _p1_pops))
    5231              :               {
    5232           14 :                 tree _q60 = _p1_pops[0];
    5233           14 :                 switch (TREE_CODE (_q60))
    5234              :                   {
    5235            0 :                   case PLUS_EXPR:
    5236            0 :                     {
    5237            0 :                       tree _q70 = TREE_OPERAND (_q60, 0);
    5238            0 :                       tree _q71 = TREE_OPERAND (_q60, 1);
    5239            0 :                       switch (TREE_CODE (_q70))
    5240              :                         {
    5241            0 :                         case BIT_IOR_EXPR:
    5242            0 :                           {
    5243            0 :                             tree _q80 = TREE_OPERAND (_q70, 0);
    5244            0 :                             tree _q81 = TREE_OPERAND (_q70, 1);
    5245            0 :                             if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    5246              :                               {
    5247            0 :                                 if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
    5248              :                                   {
    5249            0 :                                     if (integer_onep (_q71))
    5250              :                                       {
    5251            0 :                                         {
    5252            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    5253            0 :                                           tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    5254            0 :                                           if (res) return res;
    5255              :                                         }
    5256              :                                       }
    5257              :                                   }
    5258              :                               }
    5259            0 :                             if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
    5260              :                               {
    5261            0 :                                 if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    5262              :                                   {
    5263            0 :                                     if (integer_onep (_q71))
    5264              :                                       {
    5265            0 :                                         {
    5266            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    5267            0 :                                           tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    5268            0 :                                           if (res) return res;
    5269              :                                         }
    5270              :                                       }
    5271              :                                   }
    5272              :                               }
    5273              :                             break;
    5274              :                           }
    5275            0 :                         default:;
    5276              :                         }
    5277            0 :                     {
    5278            0 :                       tree _q70_pops[1];
    5279            0 :                       if (tree_nop_convert (_q70, _q70_pops))
    5280              :                         {
    5281            0 :                           tree _q80 = _q70_pops[0];
    5282            0 :                           switch (TREE_CODE (_q80))
    5283              :                             {
    5284            0 :                             case BIT_IOR_EXPR:
    5285            0 :                               {
    5286            0 :                                 tree _q90 = TREE_OPERAND (_q80, 0);
    5287            0 :                                 tree _q91 = TREE_OPERAND (_q80, 1);
    5288            0 :                                 if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5289              :                                   {
    5290            0 :                                     if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5291              :                                       {
    5292            0 :                                         if (integer_onep (_q71))
    5293              :                                           {
    5294            0 :                                             {
    5295            0 :                                               tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    5296            0 :                                               tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    5297            0 :                                               if (res) return res;
    5298              :                                             }
    5299              :                                           }
    5300              :                                       }
    5301              :                                   }
    5302            0 :                                 if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31)))
    5303              :                                   {
    5304            0 :                                     if ((_q91 == _q30 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q30, 0) && types_match (_q91, _q30)))
    5305              :                                       {
    5306            0 :                                         if (integer_onep (_q71))
    5307              :                                           {
    5308            0 :                                             {
    5309            0 :                                               tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    5310            0 :                                               tree res = generic_simplify_90 (loc, type, _p0, _p1, captures);
    5311            0 :                                               if (res) return res;
    5312              :                                             }
    5313              :                                           }
    5314              :                                       }
    5315              :                                   }
    5316              :                                 break;
    5317              :                               }
    5318              :                             default:;
    5319              :                             }
    5320              :                         }
    5321              :                     }
    5322            0 :                       break;
    5323              :                     }
    5324              :                   default:;
    5325              :                   }
    5326              :               }
    5327              :           }
    5328           14 :             break;
    5329              :           }
    5330              :         default:;
    5331              :         }
    5332              :     }
    5333              : }
    5334     30482608 :   if (tree_negate_expr_p (_p1))
    5335              :     {
    5336      7549935 :       {
    5337      7549935 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5338      7549935 :         if (!FIXED_POINT_TYPE_P (type)
    5339              : )
    5340              :           {
    5341      7549935 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1277;
    5342      7549935 :             {
    5343      7549935 :               tree res_op0;
    5344      7549935 :               res_op0 = captures[0];
    5345      7549935 :               tree res_op1;
    5346      7549935 :               {
    5347      7549935 :                 tree _o1[1], _r1;
    5348      7549935 :                 _o1[0] = captures[1];
    5349      7549935 :                 _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    5350      7549935 :                 res_op1 = _r1;
    5351              :               }
    5352      7549935 :               tree _r;
    5353      7549935 :               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    5354      7549935 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 919, __FILE__, __LINE__, true);
    5355      7549935 :               return _r;
    5356              :             }
    5357            0 : next_after_fail1277:;
    5358              :           }
    5359              :       }
    5360              :     }
    5361     22932673 :   switch (TREE_CODE (_p0))
    5362              :     {
    5363      4992696 :     CASE_CONVERT:
    5364      4992696 :       {
    5365      4992696 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5366      4992696 :         switch (TREE_CODE (_p1))
    5367              :           {
    5368      4153220 :           CASE_CONVERT:
    5369      4153220 :             {
    5370      4153220 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5371      4153220 :               switch (TREE_CODE (_q40))
    5372              :                 {
    5373           15 :                 case BIT_AND_EXPR:
    5374           15 :                   {
    5375           15 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5376           15 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    5377           15 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    5378              :                       {
    5379            0 :                         {
    5380            0 :                           tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p1, _q40, _q51, _q20 };
    5381            0 :                           tree res = generic_simplify_93 (loc, type, _p0, _p1, captures);
    5382            0 :                           if (res) return res;
    5383              :                         }
    5384              :                       }
    5385           15 :                     if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
    5386              :                       {
    5387            1 :                         {
    5388            1 :                           tree captures[5] ATTRIBUTE_UNUSED = { _q51, _p1, _q40, _q50, _q20 };
    5389            1 :                           tree res = generic_simplify_93 (loc, type, _p0, _p1, captures);
    5390            1 :                           if (res) return res;
    5391              :                         }
    5392              :                       }
    5393              :                     break;
    5394              :                   }
    5395              :                 default:;
    5396              :                 }
    5397              :               break;
    5398              :             }
    5399         4919 :           case BIT_AND_EXPR:
    5400         4919 :             {
    5401         4919 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5402         4919 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5403         4919 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
    5404              :                 {
    5405            0 :                   {
    5406            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p1, _p1, _q41, _q20 };
    5407            0 :                     tree res = generic_simplify_94 (loc, type, _p0, _p1, captures);
    5408            0 :                     if (res) return res;
    5409              :                   }
    5410              :                 }
    5411         4919 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
    5412              :                 {
    5413           21 :                   {
    5414           21 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _p1, _q40, _q20 };
    5415           21 :                     tree res = generic_simplify_94 (loc, type, _p0, _p1, captures);
    5416           21 :                     if (res) return res;
    5417              :                   }
    5418              :                 }
    5419              :               break;
    5420              :             }
    5421      4992674 :           default:;
    5422              :           }
    5423      4992674 :         switch (TREE_CODE (_q20))
    5424              :           {
    5425       111180 :           case ADDR_EXPR:
    5426       111180 :             {
    5427       111180 :               switch (TREE_CODE (_p1))
    5428              :                 {
    5429       103008 :                 CASE_CONVERT:
    5430       103008 :                   {
    5431       103008 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    5432       103008 :                     switch (TREE_CODE (_q40))
    5433              :                       {
    5434        30296 :                       case POINTER_PLUS_EXPR:
    5435        30296 :                         {
    5436        30296 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    5437        30296 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    5438        30296 :                           {
    5439        30296 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
    5440        30296 :                             if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    5441              : )
    5442              :                               {
    5443        30296 :                                 {
    5444        30296 :  poly_int64 diff;
    5445        30296 :                                     if (ptr_difference_const (captures[0], captures[1], &diff)
    5446              : )
    5447              :                                       {
    5448        15670 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1278;
    5449        15670 :                                         {
    5450        15670 :                                           tree res_op0;
    5451        15670 :                                           res_op0 =  build_int_cst_type (type, diff);
    5452        15670 :                                           tree res_op1;
    5453        15670 :                                           {
    5454        15670 :                                             tree _o1[1], _r1;
    5455        15670 :                                             _o1[0] = captures[2];
    5456        15670 :                                             if (TREE_TYPE (_o1[0]) != type)
    5457              :                                               {
    5458        15670 :                                                 _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    5459              :                                               }
    5460              :                                             else
    5461              :                                               _r1 = _o1[0];
    5462        15670 :                                             res_op1 = _r1;
    5463              :                                           }
    5464        15670 :                                           tree _r;
    5465        15670 :                                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5466        15670 :                                           if (TREE_SIDE_EFFECTS (captures[0]))
    5467            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5468        15670 :                                           if (TREE_SIDE_EFFECTS (captures[1]))
    5469            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5470        15670 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 920, __FILE__, __LINE__, true);
    5471        15670 :                                           return _r;
    5472              :                                         }
    5473            0 : next_after_fail1278:;
    5474              :                                       }
    5475              :                                 }
    5476              :                               }
    5477              :                           }
    5478        14626 :                           break;
    5479              :                         }
    5480        87338 :                       default:;
    5481              :                       }
    5482        87338 :                     {
    5483        87338 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    5484        87338 :                       if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    5485              : )
    5486              :                         {
    5487        87338 :                           {
    5488        87338 :  poly_int64 diff;
    5489        87338 :                               if (ptr_difference_const (captures[0], captures[1], &diff)
    5490              : )
    5491              :                                 {
    5492        53999 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1279;
    5493        53999 :                                   {
    5494        53999 :                                     tree _r;
    5495        53999 :                                     _r =  build_int_cst_type (type, diff);
    5496        53999 :                                     if (TREE_SIDE_EFFECTS (captures[0]))
    5497            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5498        53999 :                                     if (TREE_SIDE_EFFECTS (captures[1]))
    5499            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5500        53999 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 921, __FILE__, __LINE__, true);
    5501        53999 :                                     return _r;
    5502              :                                   }
    5503            0 : next_after_fail1279:;
    5504              :                                 }
    5505              :                           }
    5506              :                         }
    5507              :                     }
    5508        33339 :                     break;
    5509              :                   }
    5510              :                 default:;
    5511              :                 }
    5512              :               break;
    5513              :             }
    5514       100699 :           case POINTER_PLUS_EXPR:
    5515       100699 :             {
    5516       100699 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5517       100699 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5518       100699 :               switch (TREE_CODE (_p1))
    5519              :                 {
    5520        99615 :                 CASE_CONVERT:
    5521        99615 :                   {
    5522        99615 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5523        99615 :                     switch (TREE_CODE (_q60))
    5524              :                       {
    5525         5417 :                       case ADDR_EXPR:
    5526         5417 :                         {
    5527         5417 :                           {
    5528         5417 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    5529         5417 :                             if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    5530              : )
    5531              :                               {
    5532         5417 :                                 {
    5533         5417 :  poly_int64 diff;
    5534         5417 :                                     if (ptr_difference_const (captures[0], captures[2], &diff)
    5535              : )
    5536              :                                       {
    5537         1157 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1280;
    5538         1157 :                                         {
    5539         1157 :                                           tree res_op0;
    5540         1157 :                                           {
    5541         1157 :                                             tree _o1[1], _r1;
    5542         1157 :                                             _o1[0] = captures[1];
    5543         1157 :                                             if (TREE_TYPE (_o1[0]) != type)
    5544              :                                               {
    5545          884 :                                                 _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    5546              :                                               }
    5547              :                                             else
    5548              :                                               _r1 = _o1[0];
    5549         1157 :                                             res_op0 = _r1;
    5550              :                                           }
    5551         1157 :                                           tree res_op1;
    5552         1157 :                                           res_op1 =  build_int_cst_type (type, diff);
    5553         1157 :                                           tree _r;
    5554         1157 :                                           _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    5555         1157 :                                           if (TREE_SIDE_EFFECTS (captures[0]))
    5556            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5557         1157 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
    5558            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    5559         1157 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
    5560         1157 :                                           return _r;
    5561              :                                         }
    5562            0 : next_after_fail1280:;
    5563              :                                       }
    5564              :                                 }
    5565              :                               }
    5566              :                           }
    5567         4260 :                           break;
    5568              :                         }
    5569              :                       default:;
    5570              :                       }
    5571              :                     break;
    5572              :                   }
    5573              :                 default:;
    5574              :                 }
    5575              :               break;
    5576              :             }
    5577      4921848 :           default:;
    5578              :           }
    5579      4921848 :         switch (TREE_CODE (_p1))
    5580              :           {
    5581      4082393 :           CASE_CONVERT:
    5582      4082393 :             {
    5583      4082393 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5584      4082393 :               switch (TREE_CODE (_q40))
    5585              :                 {
    5586        48539 :                 case ADDR_EXPR:
    5587        48539 :                   {
    5588        48539 :                     {
    5589        48539 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    5590        48539 :                       if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    5591              : )
    5592              :                         {
    5593        48518 :                           {
    5594        48518 :  poly_int64 diff;
    5595        48518 :                               if (ptr_difference_const (captures[0], captures[1], &diff)
    5596              : )
    5597              :                                 {
    5598            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1281;
    5599            0 :                                   {
    5600            0 :                                     tree _r;
    5601            0 :                                     _r =  build_int_cst_type (type, diff);
    5602            0 :                                     if (TREE_SIDE_EFFECTS (captures[0]))
    5603            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5604            0 :                                     if (TREE_SIDE_EFFECTS (captures[1]))
    5605            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5606            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 923, __FILE__, __LINE__, true);
    5607            0 :                                     return _r;
    5608              :                                   }
    5609            0 : next_after_fail1281:;
    5610              :                                 }
    5611              :                           }
    5612              :                         }
    5613              :                     }
    5614        48539 :                     break;
    5615              :                   }
    5616              :                 default:;
    5617              :                 }
    5618              :               break;
    5619              :             }
    5620              :           default:;
    5621              :           }
    5622              :         break;
    5623              :       }
    5624     22861825 :     default:;
    5625              :     }
    5626     22861825 : if (integer_onep (_p0))
    5627              :   {
    5628       107215 :     switch (TREE_CODE (_p1))
    5629              :       {
    5630        27618 :       case SSA_NAME:
    5631        27618 :         {
    5632        27618 :           {
    5633        27618 :             tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5634        27618 :             if (INTEGRAL_TYPE_P (type)
    5635        27618 :  && ssa_name_has_boolean_range (captures[1])
    5636              : )
    5637              :               {
    5638          227 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1282;
    5639          227 :                 {
    5640          227 :                   tree res_op0;
    5641          227 :                   res_op0 = captures[1];
    5642          227 :                   tree res_op1;
    5643          227 :                   res_op1 = captures[0];
    5644          227 :                   tree _r;
    5645          227 :                   _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    5646          227 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 924, __FILE__, __LINE__, true);
    5647          227 :                   return _r;
    5648              :                 }
    5649            0 : next_after_fail1282:;
    5650              :               }
    5651              :           }
    5652        27391 :           break;
    5653              :         }
    5654              :       default:;
    5655              :       }
    5656              :   }
    5657     22861598 :   switch (TREE_CODE (_p1))
    5658              :     {
    5659      7396741 :     CASE_CONVERT:
    5660      7396741 :       {
    5661      7396741 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5662      7396741 :         switch (TREE_CODE (_q30))
    5663              :           {
    5664           14 :           case BIT_AND_EXPR:
    5665           14 :             {
    5666           14 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5667           14 :               tree _q41 = TREE_OPERAND (_q30, 1);
    5668           14 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
    5669              :                 {
    5670            0 :                   {
    5671            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p1, _q30, _q41, _p0 };
    5672            0 :                     tree res = generic_simplify_93 (loc, type, _p0, _p1, captures);
    5673            0 :                     if (res) return res;
    5674              :                   }
    5675              :                 }
    5676           14 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
    5677              :                 {
    5678            0 :                   {
    5679            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _q30, _q40, _p0 };
    5680            0 :                     tree res = generic_simplify_93 (loc, type, _p0, _p1, captures);
    5681            0 :                     if (res) return res;
    5682              :                   }
    5683              :                 }
    5684              :               break;
    5685              :             }
    5686              :           default:;
    5687              :           }
    5688              :         break;
    5689              :       }
    5690         6973 :     case BIT_AND_EXPR:
    5691         6973 :       {
    5692         6973 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5693         6973 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5694         6973 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
    5695              :           {
    5696          217 :             {
    5697          217 :               tree captures[5] ATTRIBUTE_UNUSED = { _q30, _p1, _p1, _q31, _p0 };
    5698          217 :               tree res = generic_simplify_94 (loc, type, _p0, _p1, captures);
    5699          217 :               if (res) return res;
    5700              :             }
    5701              :           }
    5702         6756 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
    5703              :           {
    5704           38 :             {
    5705           38 :               tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p1, _q30, _p0 };
    5706           38 :               tree res = generic_simplify_94 (loc, type, _p0, _p1, captures);
    5707           38 :               if (res) return res;
    5708              :             }
    5709              :           }
    5710              :         break;
    5711              :       }
    5712     22861343 :     default:;
    5713              :     }
    5714     22861343 :   switch (TREE_CODE (_p0))
    5715              :     {
    5716      1754919 :     case PLUS_EXPR:
    5717      1754919 :       {
    5718      1754919 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5719      1754919 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5720      1754919 :         switch (TREE_CODE (_p1))
    5721              :           {
    5722       475343 :           case PLUS_EXPR:
    5723       475343 :             {
    5724       475343 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5725       475343 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5726       475343 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5727              :                 {
    5728       174474 :                   {
    5729       174474 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5730       348948 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5731       348948 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5732        40243 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5733              : )
    5734              :                       {
    5735       174468 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1283;
    5736       174468 :                         {
    5737       174468 :                           tree res_op0;
    5738       174468 :                           res_op0 = captures[0];
    5739       174468 :                           tree res_op1;
    5740       174468 :                           res_op1 = captures[2];
    5741       174468 :                           tree _r;
    5742       174468 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5743       174468 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5744            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5745       174468 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 925, __FILE__, __LINE__, true);
    5746       174468 :                           return _r;
    5747              :                         }
    5748            0 : next_after_fail1283:;
    5749              :                       }
    5750              :                   }
    5751              :                 }
    5752       300875 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5753              :                 {
    5754          346 :                   {
    5755          346 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5756          692 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5757          692 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5758          236 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5759              : )
    5760              :                       {
    5761          346 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1284;
    5762          346 :                         {
    5763          346 :                           tree res_op0;
    5764          346 :                           res_op0 = captures[0];
    5765          346 :                           tree res_op1;
    5766          346 :                           res_op1 = captures[2];
    5767          346 :                           tree _r;
    5768          346 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5769          346 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5770            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5771          346 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 925, __FILE__, __LINE__, true);
    5772          346 :                           return _r;
    5773              :                         }
    5774            0 : next_after_fail1284:;
    5775              :                       }
    5776              :                   }
    5777              :                 }
    5778       300529 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5779              :                 {
    5780          183 :                   {
    5781          183 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    5782          366 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5783          366 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5784           94 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5785              : )
    5786              :                       {
    5787          183 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1285;
    5788          183 :                         {
    5789          183 :                           tree res_op0;
    5790          183 :                           res_op0 = captures[0];
    5791          183 :                           tree res_op1;
    5792          183 :                           res_op1 = captures[2];
    5793          183 :                           tree _r;
    5794          183 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5795          183 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5796            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5797          183 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 925, __FILE__, __LINE__, true);
    5798          183 :                           return _r;
    5799              :                         }
    5800            0 : next_after_fail1285:;
    5801              :                       }
    5802              :                   }
    5803              :                 }
    5804       300346 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5805              :                 {
    5806       172513 :                   {
    5807       172513 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    5808       345026 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5809       345026 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5810       139113 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5811              : )
    5812              :                       {
    5813       172513 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1286;
    5814       172513 :                         {
    5815       172513 :                           tree res_op0;
    5816       172513 :                           res_op0 = captures[0];
    5817       172513 :                           tree res_op1;
    5818       172513 :                           res_op1 = captures[2];
    5819       172513 :                           tree _r;
    5820       172513 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5821       172513 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5822            2 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5823       172513 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 925, __FILE__, __LINE__, true);
    5824       172513 :                           return _r;
    5825              :                         }
    5826            0 : next_after_fail1286:;
    5827              :                       }
    5828              :                   }
    5829              :                 }
    5830              :               break;
    5831              :             }
    5832              :           default:;
    5833              :           }
    5834              :         break;
    5835              :       }
    5836       959107 :     case MINUS_EXPR:
    5837       959107 :       {
    5838       959107 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5839       959107 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5840       959107 :         switch (TREE_CODE (_p1))
    5841              :           {
    5842         3919 :           case MINUS_EXPR:
    5843         3919 :             {
    5844         3919 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5845         3919 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5846         3919 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5847              :                 {
    5848         3877 :                   {
    5849         3877 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5850         7754 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5851         7754 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5852            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5853              : )
    5854              :                       {
    5855         3877 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1287;
    5856         3877 :                         {
    5857         3877 :                           tree res_op0;
    5858         3877 :                           res_op0 = captures[0];
    5859         3877 :                           tree res_op1;
    5860         3877 :                           res_op1 = captures[2];
    5861         3877 :                           tree _r;
    5862         3877 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5863         3877 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5864            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5865         3877 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 926, __FILE__, __LINE__, true);
    5866         3877 :                           return _r;
    5867              :                         }
    5868            0 : next_after_fail1287:;
    5869              :                       }
    5870              :                   }
    5871              :                 }
    5872           42 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5873              :                 {
    5874            0 :                   {
    5875            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5876            0 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    5877            0 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    5878            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
    5879              : )
    5880              :                       {
    5881            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1288;
    5882            0 :                         {
    5883            0 :                           tree res_op0;
    5884            0 :                           res_op0 = captures[2];
    5885            0 :                           tree res_op1;
    5886            0 :                           res_op1 = captures[1];
    5887            0 :                           tree _r;
    5888            0 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5889            0 :                           if (TREE_SIDE_EFFECTS (captures[0]))
    5890            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5891            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    5892            0 :                           return _r;
    5893              :                         }
    5894            0 : next_after_fail1288:;
    5895              :                       }
    5896              :                   }
    5897              :                 }
    5898              :               break;
    5899              :             }
    5900              :           default:;
    5901              :           }
    5902              :         break;
    5903              :       }
    5904           59 :     case POINTER_DIFF_EXPR:
    5905           59 :       {
    5906           59 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5907           59 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5908           59 :         switch (TREE_CODE (_p1))
    5909              :           {
    5910            0 :           case POINTER_DIFF_EXPR:
    5911            0 :             {
    5912            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5913            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5914            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5915              :                 {
    5916            0 :                   {
    5917            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5918            0 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5919            0 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
    5920              : )
    5921              :                       {
    5922            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1289;
    5923            0 :                         {
    5924            0 :                           tree res_op0;
    5925            0 :                           res_op0 = captures[1];
    5926            0 :                           tree res_op1;
    5927            0 :                           res_op1 = captures[3];
    5928            0 :                           tree _r;
    5929            0 :                           _r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
    5930            0 :                           if (TREE_SIDE_EFFECTS (captures[2]))
    5931            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    5932            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
    5933            0 :                           return _r;
    5934              :                         }
    5935            0 : next_after_fail1289:;
    5936              :                       }
    5937              :                   }
    5938              :                 }
    5939            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5940              :                 {
    5941            0 :                   {
    5942            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    5943            0 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5944            0 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
    5945              : )
    5946              :                       {
    5947            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1290;
    5948            0 :                         {
    5949            0 :                           tree res_op0;
    5950            0 :                           res_op0 = captures[3];
    5951            0 :                           tree res_op1;
    5952            0 :                           res_op1 = captures[2];
    5953            0 :                           tree _r;
    5954            0 :                           _r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
    5955            0 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5956            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5957            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
    5958            0 :                           return _r;
    5959              :                         }
    5960            0 : next_after_fail1290:;
    5961              :                       }
    5962              :                   }
    5963              :                 }
    5964              :               break;
    5965              :             }
    5966              :           default:;
    5967              :           }
    5968              :         break;
    5969              :       }
    5970     22509956 :     default:;
    5971              :     }
    5972     22509956 :   switch (TREE_CODE (_p1))
    5973              :     {
    5974      7396741 :     CASE_CONVERT:
    5975      7396741 :       {
    5976      7396741 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5977      7396741 :         switch (TREE_CODE (_q30))
    5978              :           {
    5979         2609 :           case NEGATE_EXPR:
    5980         2609 :             {
    5981         2609 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5982         2609 :               {
    5983         2609 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    5984         2609 :                 tree res = generic_simplify_95 (loc, type, _p0, _p1, captures);
    5985         2609 :                 if (res) return res;
    5986              :               }
    5987         2601 :               break;
    5988              :             }
    5989              :           default:;
    5990              :           }
    5991              :         break;
    5992              :       }
    5993           45 :     case NEGATE_EXPR:
    5994           45 :       {
    5995           45 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5996           45 :         {
    5997           45 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    5998           45 :           tree res = generic_simplify_95 (loc, type, _p0, _p1, captures);
    5999           45 :           if (res) return res;
    6000              :         }
    6001           40 :         break;
    6002              :       }
    6003     22509943 :     default:;
    6004              :     }
    6005     22509943 :   switch (TREE_CODE (_p0))
    6006              :     {
    6007      1407409 :     case PLUS_EXPR:
    6008      1407409 :       {
    6009      1407409 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6010      1407409 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6011      1407409 :         {
    6012      1407409 :           tree _q20_pops[1];
    6013      1407409 :           if (tree_nop_convert (_q20, _q20_pops))
    6014              :             {
    6015       329944 :               tree _q30 = _q20_pops[0];
    6016       329944 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6017              :                 {
    6018          341 :                   {
    6019          341 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    6020          341 :                     tree res = generic_simplify_96 (loc, type, _p0, _p1, captures);
    6021          341 :                     if (res) return res;
    6022              :                   }
    6023              :                 }
    6024              :             }
    6025              :         }
    6026      1407068 :         {
    6027      1407068 :           tree _q21_pops[1];
    6028      1407068 :           if (tree_nop_convert (_q21, _q21_pops))
    6029              :             {
    6030       485105 :               tree _q40 = _q21_pops[0];
    6031       485105 :               if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    6032              :                 {
    6033           86 :                   {
    6034           86 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    6035           86 :                     tree res = generic_simplify_96 (loc, type, _p0, _p1, captures);
    6036           86 :                     if (res) return res;
    6037              :                   }
    6038              :                 }
    6039              :             }
    6040              :         }
    6041      1406982 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6042              :           {
    6043        53200 :             {
    6044        53200 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6045        53200 :               tree res = generic_simplify_96 (loc, type, _p0, _p1, captures);
    6046        53200 :               if (res) return res;
    6047              :             }
    6048              :           }
    6049      1353782 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6050              :           {
    6051         1679 :             {
    6052         1679 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6053         1679 :               tree res = generic_simplify_96 (loc, type, _p0, _p1, captures);
    6054         1679 :               if (res) return res;
    6055              :             }
    6056              :           }
    6057              :         break;
    6058              :       }
    6059       955230 :     case MINUS_EXPR:
    6060       955230 :       {
    6061       955230 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6062       955230 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6063       955230 :         {
    6064       955230 :           tree _q20_pops[1];
    6065       955230 :           if (tree_nop_convert (_q20, _q20_pops))
    6066              :             {
    6067        84711 :               tree _q30 = _q20_pops[0];
    6068        84711 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6069              :                 {
    6070            0 :                   {
    6071            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    6072            0 :                     tree res = generic_simplify_97 (loc, type, _p0, _p1, captures);
    6073            0 :                     if (res) return res;
    6074              :                   }
    6075              :                 }
    6076              :             }
    6077              :         }
    6078       955230 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6079              :           {
    6080          178 :             {
    6081          178 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6082          178 :               tree res = generic_simplify_97 (loc, type, _p0, _p1, captures);
    6083          178 :               if (res) return res;
    6084              :             }
    6085              :           }
    6086              :         break;
    6087              :       }
    6088     22454470 :     default:;
    6089              :     }
    6090     22454470 : {
    6091     22454470 :   tree _p0_pops[1];
    6092     22454470 :   if (tree_nop_convert (_p0, _p0_pops))
    6093              :     {
    6094      4333141 :       tree _q20 = _p0_pops[0];
    6095      4333141 :       switch (TREE_CODE (_q20))
    6096              :         {
    6097       355742 :         case PLUS_EXPR:
    6098       355742 :           {
    6099       355742 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6100       355742 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6101       355742 :             {
    6102       355742 :               tree _q30_pops[1];
    6103       355742 :               if (tree_nop_convert (_q30, _q30_pops))
    6104              :                 {
    6105        31263 :                   tree _q40 = _q30_pops[0];
    6106        31263 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    6107              :                     {
    6108          638 :                       {
    6109          638 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
    6110          638 :                         tree res = generic_simplify_96 (loc, type, _p0, _p1, captures);
    6111          638 :                         if (res) return res;
    6112              :                       }
    6113              :                     }
    6114              :                 }
    6115              :             }
    6116       355104 :             {
    6117       355104 :               tree _q31_pops[1];
    6118       355104 :               if (tree_nop_convert (_q31, _q31_pops))
    6119              :                 {
    6120         2147 :                   tree _q50 = _q31_pops[0];
    6121         2147 :                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    6122              :                     {
    6123           52 :                       {
    6124           52 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    6125           52 :                         tree res = generic_simplify_96 (loc, type, _p0, _p1, captures);
    6126           52 :                         if (res) return res;
    6127              :                       }
    6128              :                     }
    6129              :                 }
    6130              :             }
    6131       355052 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6132              :               {
    6133           10 :                 {
    6134           10 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    6135           10 :                   tree res = generic_simplify_96 (loc, type, _p0, _p1, captures);
    6136           10 :                   if (res) return res;
    6137              :                 }
    6138              :               }
    6139       355042 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    6140              :               {
    6141            0 :                 {
    6142            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
    6143            0 :                   tree res = generic_simplify_96 (loc, type, _p0, _p1, captures);
    6144            0 :                   if (res) return res;
    6145              :                 }
    6146              :               }
    6147              :             break;
    6148              :           }
    6149          768 :         case MINUS_EXPR:
    6150          768 :           {
    6151          768 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6152          768 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6153          768 :             {
    6154          768 :               tree _q30_pops[1];
    6155          768 :               if (tree_nop_convert (_q30, _q30_pops))
    6156              :                 {
    6157            0 :                   tree _q40 = _q30_pops[0];
    6158            0 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    6159              :                     {
    6160            0 :                       {
    6161            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
    6162            0 :                         tree res = generic_simplify_97 (loc, type, _p0, _p1, captures);
    6163            0 :                         if (res) return res;
    6164              :                       }
    6165              :                     }
    6166              :                 }
    6167              :             }
    6168          768 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6169              :               {
    6170            0 :                 {
    6171            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    6172            0 :                   tree res = generic_simplify_97 (loc, type, _p0, _p1, captures);
    6173            0 :                   if (res) return res;
    6174              :                 }
    6175              :               }
    6176              :             break;
    6177              :           }
    6178              :         default:;
    6179              :         }
    6180              :     }
    6181              : }
    6182     22453770 :   switch (TREE_CODE (_p1))
    6183              :     {
    6184      1264054 :     case PLUS_EXPR:
    6185      1264054 :       {
    6186      1264054 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6187      1264054 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6188      1264054 :         {
    6189      1264054 :           tree _q30_pops[1];
    6190      1264054 :           if (tree_nop_convert (_q30, _q30_pops))
    6191              :             {
    6192       331981 :               tree _q40 = _q30_pops[0];
    6193       331981 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6194              :                 {
    6195           71 :                   {
    6196           71 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6197           71 :                     tree res = generic_simplify_98 (loc, type, _p0, _p1, captures);
    6198           71 :                     if (res) return res;
    6199              :                   }
    6200              :                 }
    6201              :             }
    6202              :         }
    6203      1263983 :         {
    6204      1263983 :           tree _q31_pops[1];
    6205      1263983 :           if (tree_nop_convert (_q31, _q31_pops))
    6206              :             {
    6207        61932 :               tree _q50 = _q31_pops[0];
    6208        61932 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6209              :                 {
    6210            0 :                   {
    6211            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6212            0 :                     tree res = generic_simplify_98 (loc, type, _p0, _p1, captures);
    6213            0 :                     if (res) return res;
    6214              :                   }
    6215              :                 }
    6216              :             }
    6217              :         }
    6218      1263983 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6219              :           {
    6220        38051 :             {
    6221        38051 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6222        38051 :               tree res = generic_simplify_98 (loc, type, _p0, _p1, captures);
    6223        38051 :               if (res) return res;
    6224              :             }
    6225              :           }
    6226      1225932 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6227              :           {
    6228         1458 :             {
    6229         1458 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6230         1458 :               tree res = generic_simplify_98 (loc, type, _p0, _p1, captures);
    6231         1458 :               if (res) return res;
    6232              :             }
    6233              :           }
    6234              :         break;
    6235              :       }
    6236        81290 :     case MINUS_EXPR:
    6237        81290 :       {
    6238        81290 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6239        81290 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6240        81290 :         {
    6241        81290 :           tree _q30_pops[1];
    6242        81290 :           if (tree_nop_convert (_q30, _q30_pops))
    6243              :             {
    6244           61 :               tree _q40 = _q30_pops[0];
    6245           61 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6246              :                 {
    6247            0 :                   {
    6248            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6249            0 :                     tree res = generic_simplify_99 (loc, type, _p0, _p1, captures);
    6250            0 :                     if (res) return res;
    6251              :                   }
    6252              :                 }
    6253              :             }
    6254              :         }
    6255        81290 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6256              :           {
    6257          337 :             {
    6258          337 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6259          337 :               tree res = generic_simplify_99 (loc, type, _p0, _p1, captures);
    6260          337 :               if (res) return res;
    6261              :             }
    6262              :           }
    6263              :         break;
    6264              :       }
    6265     22413853 :     default:;
    6266              :     }
    6267     22413853 : {
    6268     22413853 :   tree _p1_pops[1];
    6269     22413853 :   if (tree_nop_convert (_p1, _p1_pops))
    6270              :     {
    6271      6688497 :       tree _q30 = _p1_pops[0];
    6272      6688497 :       switch (TREE_CODE (_q30))
    6273              :         {
    6274       663374 :         case PLUS_EXPR:
    6275       663374 :           {
    6276       663374 :             tree _q40 = TREE_OPERAND (_q30, 0);
    6277       663374 :             tree _q41 = TREE_OPERAND (_q30, 1);
    6278       663374 :             {
    6279       663374 :               tree _q40_pops[1];
    6280       663374 :               if (tree_nop_convert (_q40, _q40_pops))
    6281              :                 {
    6282        64516 :                   tree _q50 = _q40_pops[0];
    6283        64516 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6284              :                     {
    6285          152 :                       {
    6286          152 :                         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    6287          152 :                         tree res = generic_simplify_98 (loc, type, _p0, _p1, captures);
    6288          152 :                         if (res) return res;
    6289              :                       }
    6290              :                     }
    6291              :                 }
    6292              :             }
    6293       663222 :             {
    6294       663222 :               tree _q41_pops[1];
    6295       663222 :               if (tree_nop_convert (_q41, _q41_pops))
    6296              :                 {
    6297        17634 :                   tree _q60 = _q41_pops[0];
    6298        17634 :                   if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    6299              :                     {
    6300            0 :                       {
    6301            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6302            0 :                         tree res = generic_simplify_98 (loc, type, _p0, _p1, captures);
    6303            0 :                         if (res) return res;
    6304              :                       }
    6305              :                     }
    6306              :                 }
    6307              :             }
    6308       663222 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6309              :               {
    6310            7 :                 {
    6311            7 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    6312            7 :                   tree res = generic_simplify_98 (loc, type, _p0, _p1, captures);
    6313            7 :                   if (res) return res;
    6314              :                 }
    6315              :               }
    6316       663215 :             if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    6317              :               {
    6318            0 :                 {
    6319            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6320            0 :                   tree res = generic_simplify_98 (loc, type, _p0, _p1, captures);
    6321            0 :                   if (res) return res;
    6322              :                 }
    6323              :               }
    6324              :             break;
    6325              :           }
    6326         7532 :         case MINUS_EXPR:
    6327         7532 :           {
    6328         7532 :             tree _q40 = TREE_OPERAND (_q30, 0);
    6329         7532 :             tree _q41 = TREE_OPERAND (_q30, 1);
    6330         7532 :             {
    6331         7532 :               tree _q40_pops[1];
    6332         7532 :               if (tree_nop_convert (_q40, _q40_pops))
    6333              :                 {
    6334         6712 :                   tree _q50 = _q40_pops[0];
    6335         6712 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6336              :                     {
    6337            0 :                       {
    6338            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    6339            0 :                         tree res = generic_simplify_99 (loc, type, _p0, _p1, captures);
    6340            0 :                         if (res) return res;
    6341              :                       }
    6342              :                     }
    6343              :                 }
    6344              :             }
    6345         7532 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6346              :               {
    6347            2 :                 {
    6348            2 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    6349            2 :                   tree res = generic_simplify_99 (loc, type, _p0, _p1, captures);
    6350            2 :                   if (res) return res;
    6351              :                 }
    6352              :               }
    6353              :             break;
    6354              :           }
    6355              :         default:;
    6356              :         }
    6357              :     }
    6358              : }
    6359     22413692 :   switch (TREE_CODE (_p0))
    6360              :     {
    6361      1352114 :     case PLUS_EXPR:
    6362      1352114 :       {
    6363      1352114 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6364      1352114 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6365      1352114 :         switch (TREE_CODE (_p1))
    6366              :           {
    6367            0 :           case MINUS_EXPR:
    6368            0 :             {
    6369            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6370            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6371            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6372              :                 {
    6373            0 :                   {
    6374            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    6375            0 :                     tree res = generic_simplify_100 (loc, type, _p0, _p1, captures);
    6376            0 :                     if (res) return res;
    6377              :                   }
    6378              :                 }
    6379            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6380              :                 {
    6381            0 :                   {
    6382            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    6383            0 :                     tree res = generic_simplify_100 (loc, type, _p0, _p1, captures);
    6384            0 :                     if (res) return res;
    6385              :                   }
    6386              :                 }
    6387              :               break;
    6388              :             }
    6389      1352114 :           default:;
    6390              :           }
    6391      1352114 :         if (CONSTANT_CLASS_P (_q21))
    6392              :           {
    6393       567613 :             if (CONSTANT_CLASS_P (_p1))
    6394              :               {
    6395           13 :                 {
    6396           13 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6397           13 :                   tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, MINUS_EXPR);
    6398           13 :                   if (res) return res;
    6399              :                 }
    6400              :               }
    6401              :           }
    6402              :         break;
    6403              :       }
    6404       955049 :     case MINUS_EXPR:
    6405       955049 :       {
    6406       955049 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6407       955049 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6408       955049 :         if (CONSTANT_CLASS_P (_q21))
    6409              :           {
    6410        94126 :             if (CONSTANT_CLASS_P (_p1))
    6411              :               {
    6412           12 :                 {
    6413           12 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6414           12 :                   tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, MINUS_EXPR);
    6415           12 :                   if (res) return res;
    6416              :                 }
    6417              :               }
    6418              :           }
    6419       955049 :         if (CONSTANT_CLASS_P (_q20))
    6420              :           {
    6421         2931 :             if (CONSTANT_CLASS_P (_p1))
    6422              :               {
    6423            1 :                 {
    6424            1 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6425            1 :                   tree res = generic_simplify_64 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6426            1 :                   if (res) return res;
    6427              :                 }
    6428              :               }
    6429              :           }
    6430              :         break;
    6431              :       }
    6432      4907181 :     CASE_CONVERT:
    6433      4907181 :       {
    6434      4907181 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6435      4907181 :         switch (TREE_CODE (_p1))
    6436              :           {
    6437      4082383 :           CASE_CONVERT:
    6438      4082383 :             {
    6439      4082383 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6440      4082383 :               {
    6441      4082383 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6442      4082383 :                 tree res = generic_simplify_68 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6443      4082383 :                 if (res) return res;
    6444              :               }
    6445      4068100 :               break;
    6446              :             }
    6447      4892898 :           default:;
    6448              :           }
    6449      4892898 :         switch (TREE_CODE (_q20))
    6450              :           {
    6451          288 :           case NEGATE_EXPR:
    6452          288 :             {
    6453          288 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6454          288 :               if (integer_each_onep (_p1))
    6455              :                 {
    6456            0 :                   {
    6457            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    6458            0 :                     tree res = generic_simplify_102 (loc, type, _p0, _p1, captures);
    6459            0 :                     if (res) return res;
    6460              :                   }
    6461              :                 }
    6462              :               break;
    6463              :             }
    6464       405003 :           case PLUS_EXPR:
    6465       405003 :             {
    6466       405003 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6467       405003 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6468       405003 :               switch (TREE_CODE (_p1))
    6469              :                 {
    6470       388150 :                 CASE_CONVERT:
    6471       388150 :                   {
    6472       388150 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    6473       388150 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
    6474              :                       {
    6475         6267 :                         {
    6476         6267 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
    6477         6267 :                           tree res = generic_simplify_103 (loc, type, _p0, _p1, captures);
    6478         6267 :                           if (res) return res;
    6479              :                         }
    6480              :                       }
    6481       382003 :                     if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
    6482              :                       {
    6483           29 :                         {
    6484           29 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
    6485           29 :                           tree res = generic_simplify_103 (loc, type, _p0, _p1, captures);
    6486           29 :                           if (res) return res;
    6487              :                         }
    6488              :                       }
    6489              :                     break;
    6490              :                   }
    6491       398827 :                 default:;
    6492              :                 }
    6493       398827 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
    6494              :                 {
    6495         3863 :                   {
    6496         3863 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
    6497         3863 :                     tree res = generic_simplify_103 (loc, type, _p0, _p1, captures);
    6498         3863 :                     if (res) return res;
    6499              :                   }
    6500              :                 }
    6501       394964 :               if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
    6502              :                 {
    6503          960 :                   {
    6504          960 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
    6505          960 :                     tree res = generic_simplify_103 (loc, type, _p0, _p1, captures);
    6506          960 :                     if (res) return res;
    6507              :                   }
    6508              :                 }
    6509              :               break;
    6510              :             }
    6511        99542 :           case POINTER_PLUS_EXPR:
    6512        99542 :             {
    6513        99542 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6514        99542 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6515        99542 :               switch (TREE_CODE (_p1))
    6516              :                 {
    6517        98458 :                 CASE_CONVERT:
    6518        98458 :                   {
    6519        98458 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    6520        98458 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
    6521              :                       {
    6522        11184 :                         {
    6523        11184 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
    6524        11184 :                           if (!TYPE_SATURATING (type)
    6525              : )
    6526              :                             {
    6527        11184 :                               if ((!FLOAT_TYPE_P (type) || flag_associative_math)
    6528        22368 :  && !FIXED_POINT_TYPE_P (type)
    6529              : )
    6530              :                                 {
    6531        11184 :                                   if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
    6532        11184 :  || (POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6533            0 :  && TREE_CODE (captures[1]) == INTEGER_CST
    6534            0 :  && tree_int_cst_sign_bit (captures[1]) == 0)
    6535              : )
    6536              :                                     {
    6537        11184 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1291;
    6538        11184 :                                       {
    6539        11184 :                                         tree res_op0;
    6540        11184 :                                         res_op0 = captures[1];
    6541        11184 :                                         tree _r;
    6542        11184 :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    6543        11184 :                                         if (TREE_SIDE_EFFECTS (captures[2]))
    6544           11 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    6545        11184 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 930, __FILE__, __LINE__, true);
    6546        11184 :                                         return _r;
    6547              :                                       }
    6548            0 : next_after_fail1291:;
    6549              :                                     }
    6550              :                                 }
    6551              :                             }
    6552              :                         }
    6553              :                       }
    6554              :                     break;
    6555              :                   }
    6556              :                 default:;
    6557              :                 }
    6558              :               break;
    6559              :             }
    6560      4870715 :           default:;
    6561              :           }
    6562      4870715 :         switch (TREE_CODE (_p1))
    6563              :           {
    6564      4046045 :           CASE_CONVERT:
    6565      4046045 :             {
    6566      4046045 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6567      4046045 :               switch (TREE_CODE (_q40))
    6568              :                 {
    6569       486664 :                 case PLUS_EXPR:
    6570       486664 :                   {
    6571       486664 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6572       486664 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    6573       486664 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    6574              :                       {
    6575         2145 :                         {
    6576         2145 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
    6577         2145 :                           tree res = generic_simplify_104 (loc, type, _p0, _p1, captures);
    6578         2145 :                           if (res) return res;
    6579              :                         }
    6580              :                       }
    6581       484591 :                     if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
    6582              :                       {
    6583           18 :                         {
    6584           18 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
    6585           18 :                           tree res = generic_simplify_104 (loc, type, _p0, _p1, captures);
    6586           18 :                           if (res) return res;
    6587              :                         }
    6588              :                       }
    6589              :                     break;
    6590              :                   }
    6591              :                 default:;
    6592              :                 }
    6593              :               break;
    6594              :             }
    6595              :           default:;
    6596              :           }
    6597              :         break;
    6598              :       }
    6599       140278 :     case NEGATE_EXPR:
    6600       140278 :       {
    6601       140278 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6602       140278 :         if (integer_each_onep (_p1))
    6603              :           {
    6604           41 :             {
    6605           41 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6606           41 :               tree res = generic_simplify_102 (loc, type, _p0, _p1, captures);
    6607           41 :               if (res) return res;
    6608              :             }
    6609              :           }
    6610              :         break;
    6611              :       }
    6612     22375094 :     default:;
    6613              :     }
    6614     22375094 : {
    6615     22375094 :   tree _p0_pops[1];
    6616     22375094 :   if (tree_nop_convert (_p0, _p0_pops))
    6617              :     {
    6618      4285927 :       tree _q20 = _p0_pops[0];
    6619      4285927 :       switch (TREE_CODE (_q20))
    6620              :         {
    6621       336693 :         case PLUS_EXPR:
    6622       336693 :           {
    6623       336693 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6624       336693 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6625       336693 :             if (CONSTANT_CLASS_P (_q31))
    6626              :               {
    6627       330164 :                 if (CONSTANT_CLASS_P (_p1))
    6628              :                   {
    6629            0 :                     {
    6630            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6631            0 :                       tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, MINUS_EXPR);
    6632            0 :                       if (res) return res;
    6633              :                     }
    6634              :                   }
    6635              :               }
    6636              :             break;
    6637              :           }
    6638          768 :         case MINUS_EXPR:
    6639          768 :           {
    6640          768 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6641          768 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6642          768 :             if (CONSTANT_CLASS_P (_q31))
    6643              :               {
    6644            0 :                 if (CONSTANT_CLASS_P (_p1))
    6645              :                   {
    6646            0 :                     {
    6647            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6648            0 :                       tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, MINUS_EXPR);
    6649            0 :                       if (res) return res;
    6650              :                     }
    6651              :                   }
    6652              :               }
    6653          768 :             if (CONSTANT_CLASS_P (_q30))
    6654              :               {
    6655           18 :                 if (CONSTANT_CLASS_P (_p1))
    6656              :                   {
    6657            0 :                     {
    6658            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6659            0 :                       tree res = generic_simplify_64 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6660            0 :                       if (res) return res;
    6661              :                     }
    6662              :                   }
    6663              :               }
    6664              :             break;
    6665              :           }
    6666              :         default:;
    6667              :         }
    6668              :     }
    6669              : }
    6670     22375094 : if (CONSTANT_CLASS_P (_p0))
    6671              :   {
    6672      5621336 :     switch (TREE_CODE (_p1))
    6673              :       {
    6674          823 :       case MINUS_EXPR:
    6675          823 :         {
    6676          823 :           tree _q30 = TREE_OPERAND (_p1, 0);
    6677          823 :           tree _q31 = TREE_OPERAND (_p1, 1);
    6678          823 :           if (CONSTANT_CLASS_P (_q30))
    6679              :             {
    6680          639 :               {
    6681          639 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    6682          639 :                 tree res = generic_simplify_101 (loc, type, _p0, _p1, captures);
    6683          639 :                 if (res) return res;
    6684              :               }
    6685              :             }
    6686              :           break;
    6687              :         }
    6688      5620706 :       default:;
    6689              :       }
    6690      5620706 :   {
    6691      5620706 :     tree _p1_pops[1];
    6692      5620706 :     if (tree_nop_convert (_p1, _p1_pops))
    6693              :       {
    6694      1845030 :         tree _q30 = _p1_pops[0];
    6695      1845030 :         switch (TREE_CODE (_q30))
    6696              :           {
    6697         7207 :           case MINUS_EXPR:
    6698         7207 :             {
    6699         7207 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6700         7207 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6701         7207 :               if (CONSTANT_CLASS_P (_q40))
    6702              :                 {
    6703           29 :                   {
    6704           29 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    6705           29 :                     tree res = generic_simplify_101 (loc, type, _p0, _p1, captures);
    6706           29 :                     if (res) return res;
    6707              :                   }
    6708              :                 }
    6709              :               break;
    6710              :             }
    6711              :           default:;
    6712              :           }
    6713              :       }
    6714              :   }
    6715              :   }
    6716     22374435 : if (integer_all_onesp (_p0))
    6717              :   {
    6718      1321887 :     {
    6719      1321887 :       tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
    6720      1321887 :       if (!TYPE_SATURATING (type)
    6721              : )
    6722              :         {
    6723      1321887 :           if ((!FLOAT_TYPE_P (type) || flag_associative_math)
    6724      2643774 :  && !FIXED_POINT_TYPE_P (type)
    6725              : )
    6726              :             {
    6727      1321887 :               if (TREE_CODE (type) != COMPLEX_TYPE
    6728              : )
    6729              :                 {
    6730      1321885 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1292;
    6731      1321885 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1292;
    6732      1321885 :                   {
    6733      1321885 :                     tree res_op0;
    6734      1321885 :                     res_op0 = captures[0];
    6735      1321885 :                     tree _r;
    6736      1321885 :                     _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    6737      1321885 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 931, __FILE__, __LINE__, true);
    6738      1321885 :                     return _r;
    6739              :                   }
    6740              : next_after_fail1292:;
    6741              :                 }
    6742              :             }
    6743              :         }
    6744              :     }
    6745              :   }
    6746     21052550 :   switch (TREE_CODE (_p1))
    6747              :     {
    6748      7014387 :     CASE_CONVERT:
    6749      7014387 :       {
    6750      7014387 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6751      7014387 :         switch (TREE_CODE (_q30))
    6752              :           {
    6753       669360 :           case PLUS_EXPR:
    6754       669360 :             {
    6755       669360 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6756       669360 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6757       669360 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
    6758              :                 {
    6759            0 :                   {
    6760            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
    6761            0 :                     tree res = generic_simplify_104 (loc, type, _p0, _p1, captures);
    6762            0 :                     if (res) return res;
    6763              :                   }
    6764              :                 }
    6765       669360 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
    6766              :                 {
    6767         8066 :                   {
    6768         8066 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
    6769         8066 :                     tree res = generic_simplify_104 (loc, type, _p0, _p1, captures);
    6770         8066 :                     if (res) return res;
    6771              :                   }
    6772              :                 }
    6773              :               break;
    6774              :             }
    6775              :           default:;
    6776              :           }
    6777              :         break;
    6778              :       }
    6779     21044681 :     default:;
    6780              :     }
    6781     21044681 :   switch (TREE_CODE (_p0))
    6782              :     {
    6783      4868624 :     CASE_CONVERT:
    6784      4868624 :       {
    6785      4868624 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6786      4868624 :         switch (TREE_CODE (_p1))
    6787              :           {
    6788      4043954 :           CASE_CONVERT:
    6789      4043954 :             {
    6790      4043954 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6791      4043954 :               switch (TREE_CODE (_q40))
    6792              :                 {
    6793       368235 :                 case POINTER_PLUS_EXPR:
    6794       368235 :                   {
    6795       368235 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6796       368235 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    6797       368235 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    6798              :                       {
    6799         2081 :                         {
    6800         2081 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
    6801         2081 :                           if (!TYPE_SATURATING (type)
    6802              : )
    6803              :                             {
    6804         2081 :                               if ((!FLOAT_TYPE_P (type) || flag_associative_math)
    6805         4162 :  && !FIXED_POINT_TYPE_P (type)
    6806              : )
    6807              :                                 {
    6808         2081 :                                   if (INTEGRAL_TYPE_P (type)
    6809         2081 :  && TYPE_OVERFLOW_UNDEFINED (type)
    6810            0 :  && TREE_CODE (captures[1]) != INTEGER_CST
    6811         2081 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
    6812              : )
    6813              :                                     {
    6814            0 :                                       {
    6815            0 :  tree utype = unsigned_type_for (type);
    6816            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1293;
    6817            0 :                                           {
    6818            0 :                                             tree res_op0;
    6819            0 :                                             {
    6820            0 :                                               tree _o1[1], _r1;
    6821            0 :                                               {
    6822            0 :                                                 tree _o2[1], _r2;
    6823            0 :                                                 _o2[0] = captures[1];
    6824            0 :                                                 if (TREE_TYPE (_o2[0]) != utype)
    6825              :                                                   {
    6826            0 :                                                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    6827              :                                                   }
    6828              :                                                 else
    6829              :                                                   _r2 = _o2[0];
    6830            0 :                                                 _o1[0] = _r2;
    6831              :                                               }
    6832            0 :                                               _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    6833            0 :                                               res_op0 = _r1;
    6834              :                                             }
    6835            0 :                                             tree _r;
    6836            0 :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    6837            0 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    6838            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    6839            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 932, __FILE__, __LINE__, true);
    6840            0 :                                             return _r;
    6841              :                                           }
    6842            0 : next_after_fail1293:;
    6843              :                                       }
    6844              :                                     }
    6845              :                                   else
    6846              :                                     {
    6847         2081 :                                       if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
    6848         2081 :  || (POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6849            0 :  && TREE_CODE (captures[1]) == INTEGER_CST
    6850            0 :  && tree_int_cst_sign_bit (captures[1]) == 0)
    6851              : )
    6852              :                                         {
    6853         2081 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1294;
    6854         2081 :                                           {
    6855         2081 :                                             tree res_op0;
    6856         2081 :                                             {
    6857         2081 :                                               tree _o1[1], _r1;
    6858         2081 :                                               _o1[0] = captures[1];
    6859         2081 :                                               if (TREE_TYPE (_o1[0]) != type)
    6860              :                                                 {
    6861         2077 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    6862              :                                                 }
    6863              :                                               else
    6864              :                                                 _r1 = _o1[0];
    6865         2081 :                                               res_op0 = _r1;
    6866              :                                             }
    6867         2081 :                                             tree _r;
    6868         2081 :                                             _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    6869         2081 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    6870            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    6871         2081 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 933, __FILE__, __LINE__, true);
    6872         2081 :                                             return _r;
    6873              :                                           }
    6874            0 : next_after_fail1294:;
    6875              :                                         }
    6876              :                                     }
    6877              :                                 }
    6878              :                             }
    6879              :                         }
    6880              :                       }
    6881              :                     break;
    6882              :                   }
    6883              :                 default:;
    6884              :                 }
    6885              :               break;
    6886              :             }
    6887      4866543 :           default:;
    6888              :           }
    6889      4866543 :         switch (TREE_CODE (_q20))
    6890              :           {
    6891       394004 :           case PLUS_EXPR:
    6892       394004 :             {
    6893       394004 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6894       394004 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6895       394004 :               switch (TREE_CODE (_p1))
    6896              :                 {
    6897       377279 :                 CASE_CONVERT:
    6898       377279 :                   {
    6899       377279 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    6900       377279 :                     switch (TREE_CODE (_q60))
    6901              :                       {
    6902       205209 :                       case PLUS_EXPR:
    6903       205209 :                         {
    6904       205209 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    6905       205209 :                           tree _q71 = TREE_OPERAND (_q60, 1);
    6906       205209 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
    6907              :                             {
    6908         5415 :                               {
    6909         5415 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
    6910         5415 :                                 tree res = generic_simplify_105 (loc, type, _p0, _p1, captures);
    6911         5415 :                                 if (res) return res;
    6912              :                               }
    6913              :                             }
    6914       199794 :                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
    6915              :                             {
    6916           70 :                               {
    6917           70 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
    6918           70 :                                 tree res = generic_simplify_105 (loc, type, _p0, _p1, captures);
    6919           70 :                                 if (res) return res;
    6920              :                               }
    6921              :                             }
    6922       199724 :                           if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
    6923              :                             {
    6924           90 :                               {
    6925           90 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
    6926           90 :                                 tree res = generic_simplify_105 (loc, type, _p0, _p1, captures);
    6927           90 :                                 if (res) return res;
    6928              :                               }
    6929              :                             }
    6930       199634 :                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
    6931              :                             {
    6932       149814 :                               {
    6933       149814 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
    6934       149814 :                                 tree res = generic_simplify_105 (loc, type, _p0, _p1, captures);
    6935       149814 :                                 if (res) return res;
    6936              :                               }
    6937              :                             }
    6938              :                           break;
    6939              :                         }
    6940              :                       default:;
    6941              :                       }
    6942              :                     break;
    6943              :                   }
    6944              :                 default:;
    6945              :                 }
    6946              :               break;
    6947              :             }
    6948        88358 :           case POINTER_PLUS_EXPR:
    6949        88358 :             {
    6950        88358 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6951        88358 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6952        88358 :               switch (TREE_CODE (_p1))
    6953              :                 {
    6954        87274 :                 CASE_CONVERT:
    6955        87274 :                   {
    6956        87274 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    6957        87274 :                     switch (TREE_CODE (_q60))
    6958              :                       {
    6959        50540 :                       case POINTER_PLUS_EXPR:
    6960        50540 :                         {
    6961        50540 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    6962        50540 :                           tree _q71 = TREE_OPERAND (_q60, 1);
    6963        50540 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
    6964              :                             {
    6965         9090 :                               {
    6966         9090 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
    6967         9090 :                                 if (!TYPE_SATURATING (type)
    6968              : )
    6969              :                                   {
    6970         9090 :                                     if ((!FLOAT_TYPE_P (type) || flag_associative_math)
    6971        18180 :  && !FIXED_POINT_TYPE_P (type)
    6972              : )
    6973              :                                       {
    6974         9090 :                                         if (INTEGRAL_TYPE_P (type)
    6975         9090 :  && TYPE_OVERFLOW_UNDEFINED (type)
    6976         9090 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
    6977              : )
    6978              :                                           {
    6979            0 :                                             {
    6980            0 :  tree utype = unsigned_type_for (type);
    6981            0 :                                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1295;
    6982            0 :                                                 {
    6983            0 :                                                   tree res_op0;
    6984            0 :                                                   {
    6985            0 :                                                     tree _o1[2], _r1;
    6986            0 :                                                     {
    6987            0 :                                                       tree _o2[1], _r2;
    6988            0 :                                                       _o2[0] = captures[1];
    6989            0 :                                                       if (TREE_TYPE (_o2[0]) != utype)
    6990              :                                                         {
    6991            0 :                                                           _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    6992              :                                                         }
    6993              :                                                       else
    6994              :                                                         _r2 = _o2[0];
    6995            0 :                                                       _o1[0] = _r2;
    6996              :                                                     }
    6997            0 :                                                     {
    6998            0 :                                                       tree _o2[1], _r2;
    6999            0 :                                                       _o2[0] = captures[2];
    7000            0 :                                                       if (TREE_TYPE (_o2[0]) != utype)
    7001              :                                                         {
    7002            0 :                                                           _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    7003              :                                                         }
    7004              :                                                       else
    7005              :                                                         _r2 = _o2[0];
    7006            0 :                                                       _o1[1] = _r2;
    7007              :                                                     }
    7008            0 :                                                     _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    7009            0 :                                                     res_op0 = _r1;
    7010              :                                                   }
    7011            0 :                                                   tree _r;
    7012            0 :                                                   _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    7013            0 :                                                   if (TREE_SIDE_EFFECTS (captures[3]))
    7014            0 :                                                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    7015            0 :                                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 934, __FILE__, __LINE__, true);
    7016            0 :                                                   return _r;
    7017              :                                                 }
    7018            0 : next_after_fail1295:;
    7019              :                                             }
    7020              :                                           }
    7021              :                                         else
    7022              :                                           {
    7023         9090 :                                             if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
    7024         9090 :  || (POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7025            0 :  && TREE_CODE (captures[1]) == INTEGER_CST
    7026            0 :  && tree_int_cst_sign_bit (captures[1]) == 0
    7027            0 :  && TREE_CODE (captures[2]) == INTEGER_CST
    7028            0 :  && tree_int_cst_sign_bit (captures[2]) == 0)
    7029              : )
    7030              :                                               {
    7031         9090 :                                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1296;
    7032         9090 :                                                 {
    7033         9090 :                                                   tree res_op0;
    7034         9090 :                                                   {
    7035         9090 :                                                     tree _o1[1], _r1;
    7036         9090 :                                                     _o1[0] = captures[1];
    7037         9090 :                                                     if (TREE_TYPE (_o1[0]) != type)
    7038              :                                                       {
    7039         9037 :                                                         _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    7040              :                                                       }
    7041              :                                                     else
    7042              :                                                       _r1 = _o1[0];
    7043         9090 :                                                     res_op0 = _r1;
    7044              :                                                   }
    7045         9090 :                                                   tree res_op1;
    7046         9090 :                                                   {
    7047         9090 :                                                     tree _o1[1], _r1;
    7048         9090 :                                                     _o1[0] = captures[2];
    7049         9090 :                                                     if (TREE_TYPE (_o1[0]) != type)
    7050              :                                                       {
    7051         9037 :                                                         _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    7052              :                                                       }
    7053              :                                                     else
    7054              :                                                       _r1 = _o1[0];
    7055         9090 :                                                     res_op1 = _r1;
    7056              :                                                   }
    7057         9090 :                                                   tree _r;
    7058         9090 :                                                   _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    7059         9090 :                                                   if (TREE_SIDE_EFFECTS (captures[3]))
    7060            0 :                                                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    7061         9090 :                                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 935, __FILE__, __LINE__, true);
    7062         9090 :                                                   return _r;
    7063              :                                                 }
    7064            0 : next_after_fail1296:;
    7065              :                                               }
    7066              :                                           }
    7067              :                                       }
    7068              :                                   }
    7069              :                               }
    7070              :                             }
    7071              :                           break;
    7072              :                         }
    7073              :                       default:;
    7074              :                       }
    7075              :                     break;
    7076              :                   }
    7077              :                 default:;
    7078              :                 }
    7079              :               break;
    7080              :             }
    7081              :           default:;
    7082              :           }
    7083              :         break;
    7084              :       }
    7085      1466491 :     case MULT_EXPR:
    7086      1466491 :       {
    7087      1466491 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7088      1466491 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7089      1466491 :         switch (TREE_CODE (_p1))
    7090              :           {
    7091       688362 :           case MULT_EXPR:
    7092       688362 :             {
    7093       688362 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7094       688362 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7095       688362 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7096              :                 {
    7097         3960 :                   {
    7098         3960 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    7099         3960 :                     tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    7100         3960 :                     if (res) return res;
    7101              :                   }
    7102              :                 }
    7103       687155 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7104              :                 {
    7105        13723 :                   {
    7106        13723 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    7107        13723 :                     tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    7108        13723 :                     if (res) return res;
    7109              :                   }
    7110              :                 }
    7111       673432 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7112              :                 {
    7113        33935 :                   {
    7114        33935 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
    7115        33935 :                     tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    7116        33935 :                     if (res) return res;
    7117              :                   }
    7118              :                 }
    7119       639570 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7120              :                 {
    7121       203125 :                   {
    7122       203125 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
    7123       203125 :                     tree res = generic_simplify_71 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    7124       203125 :                     if (res) return res;
    7125              :                   }
    7126              :                 }
    7127              :               break;
    7128              :             }
    7129              :           default:;
    7130              :           }
    7131              :         break;
    7132              :       }
    7133     20648244 :     default:;
    7134              :     }
    7135     20648244 :   switch (TREE_CODE (_p1))
    7136              :     {
    7137      1754649 :     case MULT_EXPR:
    7138      1754649 :       {
    7139      1754649 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7140      1754649 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7141      1754649 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    7142              :           {
    7143         3890 :             {
    7144         3890 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    7145         3890 :               tree res = generic_simplify_72 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    7146         3890 :               if (res) return res;
    7147              :             }
    7148              :           }
    7149      1750803 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    7150              :           {
    7151         1899 :             {
    7152         1899 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    7153         1899 :               tree res = generic_simplify_72 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    7154         1899 :               if (res) return res;
    7155              :             }
    7156              :           }
    7157              :         break;
    7158              :       }
    7159     20642598 :     default:;
    7160              :     }
    7161     20642598 :   switch (TREE_CODE (_p0))
    7162              :     {
    7163      1219949 :     case MULT_EXPR:
    7164      1219949 :       {
    7165      1219949 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7166      1219949 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7167      1219949 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7168              :           {
    7169        61596 :             {
    7170        61596 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7171        61596 :               tree res = generic_simplify_73 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    7172        61596 :               if (res) return res;
    7173              :             }
    7174              :           }
    7175      1158645 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    7176              :           {
    7177          632 :             {
    7178          632 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    7179          632 :               tree res = generic_simplify_73 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    7180          632 :               if (res) return res;
    7181              :             }
    7182              :           }
    7183              :         break;
    7184              :       }
    7185     20581195 :     default:;
    7186              :     }
    7187     20581195 :   switch (TREE_CODE (_p1))
    7188              :     {
    7189      1749003 :     case MULT_EXPR:
    7190      1749003 :       {
    7191      1749003 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7192      1749003 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7193      1749003 :         switch (TREE_CODE (_q30))
    7194              :           {
    7195        76205 :           case MINUS_EXPR:
    7196        76205 :             {
    7197        76205 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7198        76205 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7199        76205 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    7200              :                 {
    7201           19 :                   if (tree_zero_one_valued_p (_q31))
    7202              :                     {
    7203            0 :                       {
    7204            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q31 };
    7205            0 :                         tree res = generic_simplify_106 (loc, type, _p0, _p1, captures);
    7206            0 :                         if (res) return res;
    7207              :                       }
    7208              :                     }
    7209              :                 }
    7210              :               break;
    7211              :             }
    7212      1749003 :           default:;
    7213              :           }
    7214      1749003 :       if (tree_zero_one_valued_p (_q30))
    7215              :         {
    7216         1216 :           switch (TREE_CODE (_q31))
    7217              :             {
    7218            9 :             case MINUS_EXPR:
    7219            9 :               {
    7220            9 :                 tree _q50 = TREE_OPERAND (_q31, 0);
    7221            9 :                 tree _q51 = TREE_OPERAND (_q31, 1);
    7222            9 :                 if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    7223              :                   {
    7224            9 :                     {
    7225            9 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q51, _q30 };
    7226            9 :                       tree res = generic_simplify_106 (loc, type, _p0, _p1, captures);
    7227            9 :                       if (res) return res;
    7228              :                     }
    7229              :                   }
    7230              :                 break;
    7231              :               }
    7232              :             default:;
    7233              :             }
    7234              :         }
    7235              :         break;
    7236              :       }
    7237     20581193 :     default:;
    7238              :     }
    7239     20581193 :   switch (TREE_CODE (_p0))
    7240              :     {
    7241            0 :     case VEC_COND_EXPR:
    7242            0 :       {
    7243            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7244            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7245            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7246            0 :         switch (TREE_CODE (_p1))
    7247              :           {
    7248            0 :           case VEC_COND_EXPR:
    7249            0 :             {
    7250            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    7251            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    7252            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    7253            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7254              :                 {
    7255            0 :                   {
    7256            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    7257            0 :                     if (VECTOR_TYPE_P (type)
    7258            0 :  && (TREE_CODE_CLASS (MINUS_EXPR) != tcc_comparison
    7259              :  || types_match (type, TREE_TYPE (captures[2]))
    7260              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7261              :  || (optimize_vectors_before_lowering_p ()
    7262              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7263              : )
    7264              :                       {
    7265            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1297;
    7266            0 :                         {
    7267            0 :                           tree res_op0;
    7268            0 :                           res_op0 = captures[1];
    7269            0 :                           tree res_op1;
    7270            0 :                           {
    7271            0 :                             tree _o1[2], _r1;
    7272            0 :                             _o1[0] = captures[2];
    7273            0 :                             _o1[1] = captures[5];
    7274            0 :                             _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7275            0 :                             if (EXPR_P (_r1))
    7276            0 :                               goto next_after_fail1297;
    7277            0 :                             res_op1 = _r1;
    7278              :                           }
    7279            0 :                           tree res_op2;
    7280            0 :                           {
    7281            0 :                             tree _o1[2], _r1;
    7282            0 :                             _o1[0] = captures[3];
    7283            0 :                             _o1[1] = captures[6];
    7284            0 :                             _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7285            0 :                             if (EXPR_P (_r1))
    7286            0 :                               goto next_after_fail1297;
    7287            0 :                             res_op2 = _r1;
    7288              :                           }
    7289            0 :                           tree _r;
    7290            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7291            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    7292            0 :                           return _r;
    7293              :                         }
    7294            0 : next_after_fail1297:;
    7295              :                       }
    7296              :                   }
    7297              :                 }
    7298              :               break;
    7299              :             }
    7300            0 :           default:;
    7301              :           }
    7302            0 :         {
    7303            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    7304            0 :           if (VECTOR_TYPE_P (type)
    7305            0 :  && (TREE_CODE_CLASS (MINUS_EXPR) != tcc_comparison
    7306              :  || types_match (type, TREE_TYPE (captures[2]))
    7307              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7308              :  || (optimize_vectors_before_lowering_p ()
    7309              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7310              : )
    7311              :             {
    7312            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1298;
    7313            0 :               {
    7314            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1298;
    7315            0 :                 tree res_op0;
    7316            0 :                 res_op0 = captures[1];
    7317            0 :                 tree res_op1;
    7318            0 :                 {
    7319            0 :                   tree _o1[2], _r1;
    7320            0 :                   _o1[0] = captures[2];
    7321            0 :                   _o1[1] = unshare_expr (captures[4]);
    7322            0 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7323            0 :                   if (EXPR_P (_r1))
    7324            0 :                     goto next_after_fail1298;
    7325            0 :                   res_op1 = _r1;
    7326              :                 }
    7327            0 :                 tree res_op2;
    7328            0 :                 {
    7329            0 :                   tree _o1[2], _r1;
    7330            0 :                   _o1[0] = captures[3];
    7331            0 :                   _o1[1] = captures[4];
    7332            0 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7333            0 :                   if (EXPR_P (_r1))
    7334            0 :                     goto next_after_fail1298;
    7335            0 :                   res_op2 = _r1;
    7336              :                 }
    7337            0 :                 tree _r;
    7338            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7339            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    7340            0 :                 return _r;
    7341              :               }
    7342            0 : next_after_fail1298:;
    7343              :             }
    7344              :         }
    7345            0 :         break;
    7346              :       }
    7347     20581193 :     default:;
    7348              :     }
    7349     20581193 : if (integer_zerop (_p0))
    7350              :   {
    7351       300835 :     {
    7352       300835 :       tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
    7353       300835 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1299;
    7354       300835 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1299;
    7355       300835 :       {
    7356       300835 :         tree res_op0;
    7357       300835 :         res_op0 = captures[0];
    7358       300835 :         tree _r;
    7359       300835 :         _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    7360       300835 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7361       300835 :         return _r;
    7362              :       }
    7363              : next_after_fail1299:;
    7364              :     }
    7365              :   }
    7366     20280358 : if (real_zerop (_p0))
    7367              :   {
    7368          158 :     {
    7369          158 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    7370          158 :       if (fold_real_zero_addition_p (type, captures[1], captures[0], 0)
    7371              : )
    7372              :         {
    7373           55 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1300;
    7374           55 :           {
    7375           55 :             tree res_op0;
    7376           55 :             res_op0 = captures[1];
    7377           55 :             tree _r;
    7378           55 :             _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    7379           55 :             if (TREE_SIDE_EFFECTS (captures[0]))
    7380            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    7381           55 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
    7382           55 :             return _r;
    7383              :           }
    7384            0 : next_after_fail1300:;
    7385              :         }
    7386              :     }
    7387              :   }
    7388     20280303 :   switch (TREE_CODE (_p1))
    7389              :     {
    7390            4 :     case VEC_COND_EXPR:
    7391            4 :       {
    7392            4 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7393            4 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7394            4 :         tree _q32 = TREE_OPERAND (_p1, 2);
    7395            4 :         {
    7396            4 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    7397            4 :           if (VECTOR_TYPE_P (type)
    7398            4 :  && (TREE_CODE_CLASS (MINUS_EXPR) != tcc_comparison
    7399              :  || types_match (type, TREE_TYPE (captures[3]))
    7400              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    7401              :  || (optimize_vectors_before_lowering_p ()
    7402              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    7403              : )
    7404              :             {
    7405            4 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1301;
    7406            4 :               {
    7407            4 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1301;
    7408            0 :                 tree res_op0;
    7409            0 :                 res_op0 = captures[2];
    7410            0 :                 tree res_op1;
    7411            0 :                 {
    7412            0 :                   tree _o1[2], _r1;
    7413            0 :                   _o1[0] = unshare_expr (captures[0]);
    7414            0 :                   _o1[1] = captures[3];
    7415            0 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7416            0 :                   if (EXPR_P (_r1))
    7417            0 :                     goto next_after_fail1301;
    7418            0 :                   res_op1 = _r1;
    7419              :                 }
    7420            0 :                 tree res_op2;
    7421            0 :                 {
    7422            0 :                   tree _o1[2], _r1;
    7423            0 :                   _o1[0] = captures[0];
    7424            0 :                   _o1[1] = captures[4];
    7425            0 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7426            0 :                   if (EXPR_P (_r1))
    7427            0 :                     goto next_after_fail1301;
    7428            0 :                   res_op2 = _r1;
    7429              :                 }
    7430            0 :                 tree _r;
    7431            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7432            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    7433            0 :                 return _r;
    7434              :               }
    7435            4 : next_after_fail1301:;
    7436              :             }
    7437              :         }
    7438            4 :         if (integer_each_onep (_q31))
    7439              :           {
    7440            0 :             if (integer_zerop (_q32))
    7441              :               {
    7442            0 :                 {
    7443            0 :                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    7444            0 :                   tree res = generic_simplify_107 (loc, type, _p0, _p1, captures);
    7445            0 :                   if (res) return res;
    7446              :                 }
    7447              :               }
    7448              :           }
    7449              :         break;
    7450              :       }
    7451       111903 :     case VIEW_CONVERT_EXPR:
    7452       111903 :       {
    7453       111903 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7454       111903 :         switch (TREE_CODE (_q30))
    7455              :           {
    7456            0 :           case VEC_COND_EXPR:
    7457            0 :             {
    7458            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7459            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7460            0 :               tree _q42 = TREE_OPERAND (_q30, 2);
    7461            0 :               if (integer_each_onep (_q41))
    7462              :                 {
    7463            0 :                   if (integer_zerop (_q42))
    7464              :                     {
    7465            0 :                       {
    7466            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42 };
    7467            0 :                         tree res = generic_simplify_107 (loc, type, _p0, _p1, captures);
    7468            0 :                         if (res) return res;
    7469              :                       }
    7470              :                     }
    7471              :                 }
    7472              :               break;
    7473              :             }
    7474              :           default:;
    7475              :           }
    7476              :         break;
    7477              :       }
    7478     20280303 :     default:;
    7479              :     }
    7480     20280303 :   switch (TREE_CODE (_p0))
    7481              :     {
    7482       113053 :     case RDIV_EXPR:
    7483       113053 :       {
    7484       113053 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7485       113053 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7486       113053 :         switch (TREE_CODE (_p1))
    7487              :           {
    7488        18919 :           case RDIV_EXPR:
    7489        18919 :             {
    7490        18919 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7491        18919 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7492        18919 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7493              :                 {
    7494        18899 :                   {
    7495        18899 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7496        18899 :                     tree res = generic_simplify_79 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    7497        18899 :                     if (res) return res;
    7498              :                   }
    7499              :                 }
    7500              :               break;
    7501              :             }
    7502              :           default:;
    7503              :           }
    7504              :         break;
    7505              :       }
    7506      1352114 :     case PLUS_EXPR:
    7507      1352114 :       {
    7508      1352114 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7509      1352114 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7510      1352114 :         switch (TREE_CODE (_q20))
    7511              :           {
    7512        57708 :           case CALL_EXPR:
    7513        57708 :             switch (get_call_combined_fn (_q20))
    7514              :               {
    7515            4 :               case CFN_BUILT_IN_POPCOUNT:
    7516            4 :                 if (call_expr_nargs (_q20) == 1)
    7517              :     {
    7518            4 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7519            4 :                     switch (TREE_CODE (_q21))
    7520              :                       {
    7521            4 :                       case CALL_EXPR:
    7522            4 :                         switch (get_call_combined_fn (_q21))
    7523              :                           {
    7524            4 :                           case CFN_BUILT_IN_POPCOUNT:
    7525            4 :                             if (call_expr_nargs (_q21) == 1)
    7526              :     {
    7527            4 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7528            4 :                                 switch (TREE_CODE (_p1))
    7529              :                                   {
    7530            4 :                                   case CALL_EXPR:
    7531            4 :                                     switch (get_call_combined_fn (_p1))
    7532              :                                       {
    7533            4 :                                       case CFN_BUILT_IN_POPCOUNT:
    7534            4 :                                         if (call_expr_nargs (_p1) == 1)
    7535              :     {
    7536            4 :                                             tree _q70 = CALL_EXPR_ARG (_p1, 0);
    7537            4 :                                             switch (TREE_CODE (_q70))
    7538              :                                               {
    7539            2 :                                               case BIT_AND_EXPR:
    7540            2 :                                                 {
    7541            2 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7542            2 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7543            2 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7544              :                                                     {
    7545            1 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7546              :                                                         {
    7547            1 :                                                           {
    7548            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7549            1 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    7550            1 :                                                             if (res) return res;
    7551              :                                                           }
    7552              :                                                         }
    7553              :                                                     }
    7554            1 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7555              :                                                     {
    7556            1 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7557              :                                                         {
    7558            1 :                                                           {
    7559            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7560            1 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    7561            1 :                                                             if (res) return res;
    7562              :                                                           }
    7563              :                                                         }
    7564              :                                                     }
    7565              :                                                   break;
    7566              :                                                 }
    7567            2 :                                               case BIT_IOR_EXPR:
    7568            2 :                                                 {
    7569            2 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7570            2 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7571            2 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7572              :                                                     {
    7573            1 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7574              :                                                         {
    7575            1 :                                                           {
    7576            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7577            1 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    7578            1 :                                                             if (res) return res;
    7579              :                                                           }
    7580              :                                                         }
    7581              :                                                     }
    7582            1 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7583              :                                                     {
    7584            1 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7585              :                                                         {
    7586            1 :                                                           {
    7587            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7588            1 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    7589            1 :                                                             if (res) return res;
    7590              :                                                           }
    7591              :                                                         }
    7592              :                                                     }
    7593              :                                                   break;
    7594              :                                                 }
    7595              :                                               default:;
    7596              :                                               }
    7597              :                                           }
    7598              :                                         break;
    7599              :                                       default:;
    7600              :                                       }
    7601              :                                     break;
    7602              :                                   default:;
    7603              :                                   }
    7604              :                               }
    7605              :                             break;
    7606              :                           default:;
    7607              :                           }
    7608              :                         break;
    7609              :                       default:;
    7610              :                       }
    7611              :                   }
    7612              :                 break;
    7613            0 :               case CFN_BUILT_IN_POPCOUNTLL:
    7614            0 :                 if (call_expr_nargs (_q20) == 1)
    7615              :     {
    7616            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7617            0 :                     switch (TREE_CODE (_q21))
    7618              :                       {
    7619            0 :                       case CALL_EXPR:
    7620            0 :                         switch (get_call_combined_fn (_q21))
    7621              :                           {
    7622            0 :                           case CFN_BUILT_IN_POPCOUNTLL:
    7623            0 :                             if (call_expr_nargs (_q21) == 1)
    7624              :     {
    7625            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7626            0 :                                 switch (TREE_CODE (_p1))
    7627              :                                   {
    7628            0 :                                   case CALL_EXPR:
    7629            0 :                                     switch (get_call_combined_fn (_p1))
    7630              :                                       {
    7631            0 :                                       case CFN_BUILT_IN_POPCOUNTLL:
    7632            0 :                                         if (call_expr_nargs (_p1) == 1)
    7633              :     {
    7634            0 :                                             tree _q70 = CALL_EXPR_ARG (_p1, 0);
    7635            0 :                                             switch (TREE_CODE (_q70))
    7636              :                                               {
    7637            0 :                                               case BIT_AND_EXPR:
    7638            0 :                                                 {
    7639            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7640            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7641            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7642              :                                                     {
    7643            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7644              :                                                         {
    7645            0 :                                                           {
    7646            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7647            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    7648            0 :                                                             if (res) return res;
    7649              :                                                           }
    7650              :                                                         }
    7651              :                                                     }
    7652            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7653              :                                                     {
    7654            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7655              :                                                         {
    7656            0 :                                                           {
    7657            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7658            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    7659            0 :                                                             if (res) return res;
    7660              :                                                           }
    7661              :                                                         }
    7662              :                                                     }
    7663              :                                                   break;
    7664              :                                                 }
    7665            0 :                                               case BIT_IOR_EXPR:
    7666            0 :                                                 {
    7667            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7668            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7669            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7670              :                                                     {
    7671            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7672              :                                                         {
    7673            0 :                                                           {
    7674            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7675            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    7676            0 :                                                             if (res) return res;
    7677              :                                                           }
    7678              :                                                         }
    7679              :                                                     }
    7680            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7681              :                                                     {
    7682            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7683              :                                                         {
    7684            0 :                                                           {
    7685            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7686            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    7687            0 :                                                             if (res) return res;
    7688              :                                                           }
    7689              :                                                         }
    7690              :                                                     }
    7691              :                                                   break;
    7692              :                                                 }
    7693              :                                               default:;
    7694              :                                               }
    7695              :                                           }
    7696              :                                         break;
    7697              :                                       default:;
    7698              :                                       }
    7699              :                                     break;
    7700              :                                   default:;
    7701              :                                   }
    7702              :                               }
    7703              :                             break;
    7704              :                           default:;
    7705              :                           }
    7706              :                         break;
    7707              :                       default:;
    7708              :                       }
    7709              :                   }
    7710              :                 break;
    7711            0 :               case CFN_POPCOUNT:
    7712            0 :                 if (call_expr_nargs (_q20) == 1)
    7713              :     {
    7714            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7715            0 :                     switch (TREE_CODE (_q21))
    7716              :                       {
    7717            0 :                       case CALL_EXPR:
    7718            0 :                         switch (get_call_combined_fn (_q21))
    7719              :                           {
    7720            0 :                           case CFN_POPCOUNT:
    7721            0 :                             if (call_expr_nargs (_q21) == 1)
    7722              :     {
    7723            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7724            0 :                                 switch (TREE_CODE (_p1))
    7725              :                                   {
    7726            0 :                                   case CALL_EXPR:
    7727            0 :                                     switch (get_call_combined_fn (_p1))
    7728              :                                       {
    7729            0 :                                       case CFN_POPCOUNT:
    7730            0 :                                         if (call_expr_nargs (_p1) == 1)
    7731              :     {
    7732            0 :                                             tree _q70 = CALL_EXPR_ARG (_p1, 0);
    7733            0 :                                             switch (TREE_CODE (_q70))
    7734              :                                               {
    7735            0 :                                               case BIT_AND_EXPR:
    7736            0 :                                                 {
    7737            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7738            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7739            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7740              :                                                     {
    7741            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7742              :                                                         {
    7743            0 :                                                           {
    7744            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7745            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    7746            0 :                                                             if (res) return res;
    7747              :                                                           }
    7748              :                                                         }
    7749              :                                                     }
    7750            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7751              :                                                     {
    7752            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7753              :                                                         {
    7754            0 :                                                           {
    7755            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7756            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    7757            0 :                                                             if (res) return res;
    7758              :                                                           }
    7759              :                                                         }
    7760              :                                                     }
    7761              :                                                   break;
    7762              :                                                 }
    7763            0 :                                               case BIT_IOR_EXPR:
    7764            0 :                                                 {
    7765            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7766            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7767            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7768              :                                                     {
    7769            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7770              :                                                         {
    7771            0 :                                                           {
    7772            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7773            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    7774            0 :                                                             if (res) return res;
    7775              :                                                           }
    7776              :                                                         }
    7777              :                                                     }
    7778            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7779              :                                                     {
    7780            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7781              :                                                         {
    7782            0 :                                                           {
    7783            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7784            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    7785            0 :                                                             if (res) return res;
    7786              :                                                           }
    7787              :                                                         }
    7788              :                                                     }
    7789              :                                                   break;
    7790              :                                                 }
    7791              :                                               default:;
    7792              :                                               }
    7793              :                                           }
    7794              :                                         break;
    7795              :                                       default:;
    7796              :                                       }
    7797              :                                     break;
    7798              :                                   default:;
    7799              :                                   }
    7800              :                               }
    7801              :                             break;
    7802              :                           default:;
    7803              :                           }
    7804              :                         break;
    7805              :                       default:;
    7806              :                       }
    7807              :                   }
    7808              :                 break;
    7809            0 :               case CFN_BUILT_IN_POPCOUNTIMAX:
    7810            0 :                 if (call_expr_nargs (_q20) == 1)
    7811              :     {
    7812            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7813            0 :                     switch (TREE_CODE (_q21))
    7814              :                       {
    7815            0 :                       case CALL_EXPR:
    7816            0 :                         switch (get_call_combined_fn (_q21))
    7817              :                           {
    7818            0 :                           case CFN_BUILT_IN_POPCOUNTIMAX:
    7819            0 :                             if (call_expr_nargs (_q21) == 1)
    7820              :     {
    7821            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7822            0 :                                 switch (TREE_CODE (_p1))
    7823              :                                   {
    7824            0 :                                   case CALL_EXPR:
    7825            0 :                                     switch (get_call_combined_fn (_p1))
    7826              :                                       {
    7827            0 :                                       case CFN_BUILT_IN_POPCOUNTIMAX:
    7828            0 :                                         if (call_expr_nargs (_p1) == 1)
    7829              :     {
    7830            0 :                                             tree _q70 = CALL_EXPR_ARG (_p1, 0);
    7831            0 :                                             switch (TREE_CODE (_q70))
    7832              :                                               {
    7833            0 :                                               case BIT_AND_EXPR:
    7834            0 :                                                 {
    7835            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7836            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7837            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7838              :                                                     {
    7839            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7840              :                                                         {
    7841            0 :                                                           {
    7842            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7843            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    7844            0 :                                                             if (res) return res;
    7845              :                                                           }
    7846              :                                                         }
    7847              :                                                     }
    7848            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7849              :                                                     {
    7850            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7851              :                                                         {
    7852            0 :                                                           {
    7853            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7854            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    7855            0 :                                                             if (res) return res;
    7856              :                                                           }
    7857              :                                                         }
    7858              :                                                     }
    7859              :                                                   break;
    7860              :                                                 }
    7861            0 :                                               case BIT_IOR_EXPR:
    7862            0 :                                                 {
    7863            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7864            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7865            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7866              :                                                     {
    7867            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7868              :                                                         {
    7869            0 :                                                           {
    7870            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7871            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    7872            0 :                                                             if (res) return res;
    7873              :                                                           }
    7874              :                                                         }
    7875              :                                                     }
    7876            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7877              :                                                     {
    7878            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7879              :                                                         {
    7880            0 :                                                           {
    7881            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7882            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    7883            0 :                                                             if (res) return res;
    7884              :                                                           }
    7885              :                                                         }
    7886              :                                                     }
    7887              :                                                   break;
    7888              :                                                 }
    7889              :                                               default:;
    7890              :                                               }
    7891              :                                           }
    7892              :                                         break;
    7893              :                                       default:;
    7894              :                                       }
    7895              :                                     break;
    7896              :                                   default:;
    7897              :                                   }
    7898              :                               }
    7899              :                             break;
    7900              :                           default:;
    7901              :                           }
    7902              :                         break;
    7903              :                       default:;
    7904              :                       }
    7905              :                   }
    7906              :                 break;
    7907            0 :               case CFN_BUILT_IN_POPCOUNTL:
    7908            0 :                 if (call_expr_nargs (_q20) == 1)
    7909              :     {
    7910            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7911            0 :                     switch (TREE_CODE (_q21))
    7912              :                       {
    7913            0 :                       case CALL_EXPR:
    7914            0 :                         switch (get_call_combined_fn (_q21))
    7915              :                           {
    7916            0 :                           case CFN_BUILT_IN_POPCOUNTL:
    7917            0 :                             if (call_expr_nargs (_q21) == 1)
    7918              :     {
    7919            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7920            0 :                                 switch (TREE_CODE (_p1))
    7921              :                                   {
    7922            0 :                                   case CALL_EXPR:
    7923            0 :                                     switch (get_call_combined_fn (_p1))
    7924              :                                       {
    7925            0 :                                       case CFN_BUILT_IN_POPCOUNTL:
    7926            0 :                                         if (call_expr_nargs (_p1) == 1)
    7927              :     {
    7928            0 :                                             tree _q70 = CALL_EXPR_ARG (_p1, 0);
    7929            0 :                                             switch (TREE_CODE (_q70))
    7930              :                                               {
    7931            0 :                                               case BIT_AND_EXPR:
    7932            0 :                                                 {
    7933            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7934            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7935            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7936              :                                                     {
    7937            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7938              :                                                         {
    7939            0 :                                                           {
    7940            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7941            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
    7942            0 :                                                             if (res) return res;
    7943              :                                                           }
    7944              :                                                         }
    7945              :                                                     }
    7946            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7947              :                                                     {
    7948            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7949              :                                                         {
    7950            0 :                                                           {
    7951            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7952            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
    7953            0 :                                                             if (res) return res;
    7954              :                                                           }
    7955              :                                                         }
    7956              :                                                     }
    7957              :                                                   break;
    7958              :                                                 }
    7959            0 :                                               case BIT_IOR_EXPR:
    7960            0 :                                                 {
    7961            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7962            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7963            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7964              :                                                     {
    7965            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7966              :                                                         {
    7967            0 :                                                           {
    7968            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7969            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
    7970            0 :                                                             if (res) return res;
    7971              :                                                           }
    7972              :                                                         }
    7973              :                                                     }
    7974            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7975              :                                                     {
    7976            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7977              :                                                         {
    7978            0 :                                                           {
    7979            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7980            0 :                                                             tree res = generic_simplify_109 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
    7981            0 :                                                             if (res) return res;
    7982              :                                                           }
    7983              :                                                         }
    7984              :                                                     }
    7985              :                                                   break;
    7986              :                                                 }
    7987              :                                               default:;
    7988              :                                               }
    7989              :                                           }
    7990              :                                         break;
    7991              :                                       default:;
    7992              :                                       }
    7993              :                                     break;
    7994              :                                   default:;
    7995              :                                   }
    7996              :                               }
    7997              :                             break;
    7998              :                           default:;
    7999              :                           }
    8000              :                         break;
    8001              :                       default:;
    8002              :                       }
    8003              :                   }
    8004              :                 break;
    8005              :               default:;
    8006              :               }
    8007              :             break;
    8008              :           default:;
    8009              :           }
    8010              :         break;
    8011              :       }
    8012            0 :     case VEC_PERM_EXPR:
    8013            0 :       {
    8014            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8015            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8016            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8017            0 :         switch (TREE_CODE (_q20))
    8018              :           {
    8019            0 :           case MULT_EXPR:
    8020            0 :             {
    8021            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8022            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8023            0 :               if (tree_vec_same_elem_p (_q31))
    8024              :                 {
    8025            0 :                   if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    8026              :                     {
    8027            0 :                       {
    8028            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q22, _p1 };
    8029            0 :                         tree res = generic_simplify_110 (loc, type, _p0, _p1, captures);
    8030            0 :                         if (res) return res;
    8031              :                       }
    8032              :                     }
    8033              :                 }
    8034            0 :               if (tree_vec_same_elem_p (_q30))
    8035              :                 {
    8036            0 :                   if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    8037              :                     {
    8038            0 :                       {
    8039            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _q22, _p1 };
    8040            0 :                         tree res = generic_simplify_110 (loc, type, _p0, _p1, captures);
    8041            0 :                         if (res) return res;
    8042              :                       }
    8043              :                     }
    8044              :                 }
    8045              :               break;
    8046              :             }
    8047              :           default:;
    8048              :           }
    8049              :         break;
    8050              :       }
    8051       690406 :     case CALL_EXPR:
    8052       690406 :       switch (get_call_combined_fn (_p0))
    8053              :         {
    8054           18 :         case CFN_BUILT_IN_LOG:
    8055           18 :           if (call_expr_nargs (_p0) == 1)
    8056              :     {
    8057           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8058           18 :               switch (TREE_CODE (_p1))
    8059              :                 {
    8060            0 :                 case CALL_EXPR:
    8061            0 :                   switch (get_call_combined_fn (_p1))
    8062              :                     {
    8063            0 :                     case CFN_BUILT_IN_LOG:
    8064            0 :                       if (call_expr_nargs (_p1) == 1)
    8065              :     {
    8066            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8067            0 :                           {
    8068            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8069            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG);
    8070            0 :                             if (res) return res;
    8071              :                           }
    8072              :                         }
    8073              :                       break;
    8074              :                     default:;
    8075              :                     }
    8076              :                   break;
    8077              :                 default:;
    8078              :                 }
    8079              :             }
    8080              :           break;
    8081            2 :         case CFN_BUILT_IN_LOG2:
    8082            2 :           if (call_expr_nargs (_p0) == 1)
    8083              :     {
    8084            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8085            2 :               switch (TREE_CODE (_p1))
    8086              :                 {
    8087            0 :                 case CALL_EXPR:
    8088            0 :                   switch (get_call_combined_fn (_p1))
    8089              :                     {
    8090            0 :                     case CFN_BUILT_IN_LOG2:
    8091            0 :                       if (call_expr_nargs (_p1) == 1)
    8092              :     {
    8093            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8094            0 :                           {
    8095            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8096            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2);
    8097            0 :                             if (res) return res;
    8098              :                           }
    8099              :                         }
    8100              :                       break;
    8101              :                     default:;
    8102              :                     }
    8103              :                   break;
    8104              :                 default:;
    8105              :                 }
    8106              :             }
    8107              :           break;
    8108            0 :         case CFN_BUILT_IN_LOGF:
    8109            0 :           if (call_expr_nargs (_p0) == 1)
    8110              :     {
    8111            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8112            0 :               switch (TREE_CODE (_p1))
    8113              :                 {
    8114            0 :                 case CALL_EXPR:
    8115            0 :                   switch (get_call_combined_fn (_p1))
    8116              :                     {
    8117            0 :                     case CFN_BUILT_IN_LOGF:
    8118            0 :                       if (call_expr_nargs (_p1) == 1)
    8119              :     {
    8120            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8121            0 :                           {
    8122            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8123            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF);
    8124            0 :                             if (res) return res;
    8125              :                           }
    8126              :                         }
    8127              :                       break;
    8128              :                     default:;
    8129              :                     }
    8130              :                   break;
    8131              :                 default:;
    8132              :                 }
    8133              :             }
    8134              :           break;
    8135            0 :         case CFN_BUILT_IN_LOGL:
    8136            0 :           if (call_expr_nargs (_p0) == 1)
    8137              :     {
    8138            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8139            0 :               switch (TREE_CODE (_p1))
    8140              :                 {
    8141            0 :                 case CALL_EXPR:
    8142            0 :                   switch (get_call_combined_fn (_p1))
    8143              :                     {
    8144            0 :                     case CFN_BUILT_IN_LOGL:
    8145            0 :                       if (call_expr_nargs (_p1) == 1)
    8146              :     {
    8147            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8148            0 :                           {
    8149            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8150            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL);
    8151            0 :                             if (res) return res;
    8152              :                           }
    8153              :                         }
    8154              :                       break;
    8155              :                     default:;
    8156              :                     }
    8157              :                   break;
    8158              :                 default:;
    8159              :                 }
    8160              :             }
    8161              :           break;
    8162            0 :         case CFN_BUILT_IN_LOG10F:
    8163            0 :           if (call_expr_nargs (_p0) == 1)
    8164              :     {
    8165            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8166            0 :               switch (TREE_CODE (_p1))
    8167              :                 {
    8168            0 :                 case CALL_EXPR:
    8169            0 :                   switch (get_call_combined_fn (_p1))
    8170              :                     {
    8171            0 :                     case CFN_BUILT_IN_LOG10F:
    8172            0 :                       if (call_expr_nargs (_p1) == 1)
    8173              :     {
    8174            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8175            0 :                           {
    8176            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8177            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F);
    8178            0 :                             if (res) return res;
    8179              :                           }
    8180              :                         }
    8181              :                       break;
    8182              :                     default:;
    8183              :                     }
    8184              :                   break;
    8185              :                 default:;
    8186              :                 }
    8187              :             }
    8188              :           break;
    8189            0 :         case CFN_BUILT_IN_LOG10L:
    8190            0 :           if (call_expr_nargs (_p0) == 1)
    8191              :     {
    8192            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8193            0 :               switch (TREE_CODE (_p1))
    8194              :                 {
    8195            0 :                 case CALL_EXPR:
    8196            0 :                   switch (get_call_combined_fn (_p1))
    8197              :                     {
    8198            0 :                     case CFN_BUILT_IN_LOG10L:
    8199            0 :                       if (call_expr_nargs (_p1) == 1)
    8200              :     {
    8201            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8202            0 :                           {
    8203            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8204            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L);
    8205            0 :                             if (res) return res;
    8206              :                           }
    8207              :                         }
    8208              :                       break;
    8209              :                     default:;
    8210              :                     }
    8211              :                   break;
    8212              :                 default:;
    8213              :                 }
    8214              :             }
    8215              :           break;
    8216            0 :         case CFN_LOG:
    8217            0 :           if (call_expr_nargs (_p0) == 1)
    8218              :     {
    8219            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8220            0 :               switch (TREE_CODE (_p1))
    8221              :                 {
    8222            0 :                 case CALL_EXPR:
    8223            0 :                   switch (get_call_combined_fn (_p1))
    8224              :                     {
    8225            0 :                     case CFN_LOG:
    8226            0 :                       if (call_expr_nargs (_p1) == 1)
    8227              :     {
    8228            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8229            0 :                           {
    8230            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8231            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_LOG);
    8232            0 :                             if (res) return res;
    8233              :                           }
    8234              :                         }
    8235              :                       break;
    8236              :                     default:;
    8237              :                     }
    8238              :                   break;
    8239              :                 default:;
    8240              :                 }
    8241              :             }
    8242              :           break;
    8243            0 :         case CFN_LOG2:
    8244            0 :           if (call_expr_nargs (_p0) == 1)
    8245              :     {
    8246            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8247            0 :               switch (TREE_CODE (_p1))
    8248              :                 {
    8249            0 :                 case CALL_EXPR:
    8250            0 :                   switch (get_call_combined_fn (_p1))
    8251              :                     {
    8252            0 :                     case CFN_LOG2:
    8253            0 :                       if (call_expr_nargs (_p1) == 1)
    8254              :     {
    8255            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8256            0 :                           {
    8257            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8258            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_LOG2);
    8259            0 :                             if (res) return res;
    8260              :                           }
    8261              :                         }
    8262              :                       break;
    8263              :                     default:;
    8264              :                     }
    8265              :                   break;
    8266              :                 default:;
    8267              :                 }
    8268              :             }
    8269              :           break;
    8270            0 :         case CFN_LOG10:
    8271            0 :           if (call_expr_nargs (_p0) == 1)
    8272              :     {
    8273            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8274            0 :               switch (TREE_CODE (_p1))
    8275              :                 {
    8276            0 :                 case CALL_EXPR:
    8277            0 :                   switch (get_call_combined_fn (_p1))
    8278              :                     {
    8279            0 :                     case CFN_LOG10:
    8280            0 :                       if (call_expr_nargs (_p1) == 1)
    8281              :     {
    8282            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8283            0 :                           {
    8284            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8285            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_LOG10);
    8286            0 :                             if (res) return res;
    8287              :                           }
    8288              :                         }
    8289              :                       break;
    8290              :                     default:;
    8291              :                     }
    8292              :                   break;
    8293              :                 default:;
    8294              :                 }
    8295              :             }
    8296              :           break;
    8297            6 :         case CFN_BUILT_IN_LOG10:
    8298            6 :           if (call_expr_nargs (_p0) == 1)
    8299              :     {
    8300            6 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8301            6 :               switch (TREE_CODE (_p1))
    8302              :                 {
    8303            2 :                 case CALL_EXPR:
    8304            2 :                   switch (get_call_combined_fn (_p1))
    8305              :                     {
    8306            2 :                     case CFN_BUILT_IN_LOG10:
    8307            2 :                       if (call_expr_nargs (_p1) == 1)
    8308              :     {
    8309            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8310            2 :                           {
    8311            2 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8312            2 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10);
    8313            2 :                             if (res) return res;
    8314              :                           }
    8315              :                         }
    8316              :                       break;
    8317              :                     default:;
    8318              :                     }
    8319              :                   break;
    8320              :                 default:;
    8321              :                 }
    8322              :             }
    8323              :           break;
    8324            0 :         case CFN_BUILT_IN_LOG2F:
    8325            0 :           if (call_expr_nargs (_p0) == 1)
    8326              :     {
    8327            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8328            0 :               switch (TREE_CODE (_p1))
    8329              :                 {
    8330            0 :                 case CALL_EXPR:
    8331            0 :                   switch (get_call_combined_fn (_p1))
    8332              :                     {
    8333            0 :                     case CFN_BUILT_IN_LOG2F:
    8334            0 :                       if (call_expr_nargs (_p1) == 1)
    8335              :     {
    8336            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8337            0 :                           {
    8338            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8339            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F);
    8340            0 :                             if (res) return res;
    8341              :                           }
    8342              :                         }
    8343              :                       break;
    8344              :                     default:;
    8345              :                     }
    8346              :                   break;
    8347              :                 default:;
    8348              :                 }
    8349              :             }
    8350              :           break;
    8351            0 :         case CFN_BUILT_IN_LOG2L:
    8352            0 :           if (call_expr_nargs (_p0) == 1)
    8353              :     {
    8354            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8355            0 :               switch (TREE_CODE (_p1))
    8356              :                 {
    8357            0 :                 case CALL_EXPR:
    8358            0 :                   switch (get_call_combined_fn (_p1))
    8359              :                     {
    8360            0 :                     case CFN_BUILT_IN_LOG2L:
    8361            0 :                       if (call_expr_nargs (_p1) == 1)
    8362              :     {
    8363            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8364            0 :                           {
    8365            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8366            0 :                             tree res = generic_simplify_108 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L);
    8367            0 :                             if (res) return res;
    8368              :                           }
    8369              :                         }
    8370              :                       break;
    8371              :                     default:;
    8372              :                     }
    8373              :                   break;
    8374              :                 default:;
    8375              :                 }
    8376              :             }
    8377              :           break;
    8378              :         default:;
    8379              :         }
    8380              :       break;
    8381     20280286 :     default:;
    8382              :     }
    8383     20280286 :   switch (TREE_CODE (_p1))
    8384              :     {
    8385         6700 :     case BIT_AND_EXPR:
    8386         6700 :       {
    8387         6700 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8388         6700 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8389         6700 :         switch (TREE_CODE (_q30))
    8390              :           {
    8391           80 :           case MAX_EXPR:
    8392           80 :             {
    8393           80 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8394           80 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8395           80 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    8396              :                 {
    8397           80 :                   switch (TREE_CODE (_q41))
    8398              :                     {
    8399           80 :                     case INTEGER_CST:
    8400           80 :                       {
    8401           80 :                         switch (TREE_CODE (_q31))
    8402              :                           {
    8403           72 :                           case INTEGER_CST:
    8404           72 :                             {
    8405           72 :                               {
    8406           72 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q31 };
    8407           72 :                                 {
    8408           72 :  auto i = wi::neg (wi::to_wide (captures[2]));
    8409           72 :                                     if (wi::popcount (i) == 1
    8410          200 :  && (wi::to_wide (captures[1])) == (i - 1)
    8411              : )
    8412              :                                       {
    8413           40 :                                         if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    8414              : )
    8415              :                                           {
    8416            8 :                                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1302;
    8417            8 :                                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1302;
    8418            8 :                                             {
    8419            8 :                                               tree res_op0;
    8420            8 :                                               res_op0 = captures[0];
    8421            8 :                                               tree res_op1;
    8422            8 :                                               res_op1 = captures[1];
    8423            8 :                                               tree _r;
    8424            8 :                                               _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    8425            8 :                                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
    8426            8 :                                               return _r;
    8427              :                                             }
    8428           64 : next_after_fail1302:;
    8429              :                                           }
    8430              :                                         else
    8431              :                                           {
    8432           32 :                                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1303;
    8433           32 :                                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1303;
    8434           32 :                                             {
    8435           32 :                                               if (! tree_invariant_p (captures[0])) goto next_after_fail1303;
    8436            0 :                                               if (! tree_invariant_p (captures[1])) goto next_after_fail1303;
    8437            0 :                                               tree res_op0;
    8438            0 :                                               {
    8439            0 :                                                 tree _o1[2], _r1;
    8440            0 :                                                 _o1[0] = unshare_expr (captures[0]);
    8441            0 :                                                 _o1[1] = unshare_expr (captures[1]);
    8442            0 :                                                 _r1 = fold_build2_loc (loc, LE_EXPR, boolean_type_node, _o1[0], _o1[1]);
    8443            0 :                                                 res_op0 = _r1;
    8444              :                                               }
    8445            0 :                                               tree res_op1;
    8446            0 :                                               res_op1 = unshare_expr (captures[0]);
    8447            0 :                                               tree res_op2;
    8448            0 :                                               {
    8449            0 :                                                 tree _o1[2], _r1;
    8450            0 :                                                 _o1[0] = captures[0];
    8451            0 :                                                 _o1[1] = captures[1];
    8452            0 :                                                 _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8453            0 :                                                 res_op2 = _r1;
    8454              :                                               }
    8455            0 :                                               tree _r;
    8456            0 :                                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    8457            0 :                                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 939, __FILE__, __LINE__, true);
    8458            0 :                                               return _r;
    8459              :                                             }
    8460           64 : next_after_fail1303:;
    8461              :                                           }
    8462              :                                       }
    8463            8 :                                 }
    8464              :                               }
    8465           64 :                               break;
    8466              :                             }
    8467              :                           default:;
    8468              :                           }
    8469              :                         break;
    8470              :                       }
    8471              :                     default:;
    8472              :                     }
    8473              :                 }
    8474              :               break;
    8475              :             }
    8476              :           default:;
    8477              :           }
    8478              :         break;
    8479              :       }
    8480     20280278 :     default:;
    8481              :     }
    8482     20280278 :   switch (TREE_CODE (_p0))
    8483              :     {
    8484            0 :     case VEC_PERM_EXPR:
    8485            0 :       {
    8486            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8487            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8488            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8489            0 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    8490              :           {
    8491            0 :             switch (TREE_CODE (_p1))
    8492              :               {
    8493            0 :               case VEC_PERM_EXPR:
    8494            0 :                 {
    8495            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    8496            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    8497            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    8498            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
    8499              :                     {
    8500            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    8501              :                         {
    8502            0 :                           {
    8503            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
    8504            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
    8505              : )
    8506              :                               {
    8507            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1304;
    8508            0 :                                 {
    8509            0 :                                   tree res_op0;
    8510            0 :                                   {
    8511            0 :                                     tree _o1[2], _r1;
    8512            0 :                                     _o1[0] = captures[0];
    8513            0 :                                     _o1[1] = captures[2];
    8514            0 :                                     _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8515            0 :                                     captures[3] = _r1;
    8516              :                                   }
    8517            0 :                                   res_op0 = unshare_expr (captures[3]);
    8518            0 :                                   tree res_op1;
    8519            0 :                                   res_op1 = captures[3];
    8520            0 :                                   tree res_op2;
    8521            0 :                                   res_op2 = captures[1];
    8522            0 :                                   tree _r;
    8523            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
    8524            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    8525            0 :                                   return _r;
    8526              :                                 }
    8527            0 : next_after_fail1304:;
    8528              :                               }
    8529              :                           }
    8530              :                         }
    8531              :                     }
    8532              :                   break;
    8533              :                 }
    8534            0 :               default:;
    8535              :               }
    8536            0 :             switch (TREE_CODE (_q22))
    8537              :               {
    8538            0 :               case VECTOR_CST:
    8539            0 :                 {
    8540            0 :                   switch (TREE_CODE (_p1))
    8541              :                     {
    8542            0 :                     case VEC_PERM_EXPR:
    8543            0 :                       {
    8544            0 :                         tree _q60 = TREE_OPERAND (_p1, 0);
    8545            0 :                         tree _q61 = TREE_OPERAND (_p1, 1);
    8546            0 :                         tree _q62 = TREE_OPERAND (_p1, 2);
    8547            0 :                         if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
    8548              :                           {
    8549            0 :                             if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    8550              :                               {
    8551            0 :                                 switch (TREE_CODE (_q62))
    8552              :                                   {
    8553            0 :                                   case VECTOR_CST:
    8554            0 :                                     {
    8555            0 :                                       {
    8556            0 :                                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
    8557            0 :                                         tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8558            0 :                                         if (res) return res;
    8559              :                                       }
    8560            0 :                                       break;
    8561              :                                     }
    8562              :                                   default:;
    8563              :                                   }
    8564              :                               }
    8565              :                           }
    8566              :                         break;
    8567              :                       }
    8568              :                     default:;
    8569              :                     }
    8570              :                   break;
    8571              :                 }
    8572              :               default:;
    8573              :               }
    8574              :           }
    8575              :         break;
    8576              :       }
    8577              :     default:;
    8578              :     }
    8579              :   return NULL_TREE;
    8580              : }
    8581              : 
    8582              : tree
    8583      1248913 : generic_simplify_LSHIFT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    8584              : {
    8585      1248913 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    8586      1248913 :   switch (TREE_CODE (_p1))
    8587              :     {
    8588          250 :     case TRUNC_MOD_EXPR:
    8589          250 :       {
    8590          250 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8591          250 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8592          250 :         {
    8593          250 :           tree _q31_pops[1];
    8594          250 :           if (tree_power_of_two_cand (_q31, _q31_pops))
    8595              :             {
    8596          244 :               tree _q50 = _q31_pops[0];
    8597          244 :               {
    8598          244 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
    8599          244 :                 tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, LSHIFT_EXPR, TRUNC_MOD_EXPR);
    8600          244 :                 if (res) return res;
    8601              :               }
    8602              :             }
    8603              :         }
    8604           75 :         break;
    8605              :       }
    8606            0 :     case FLOOR_MOD_EXPR:
    8607            0 :       {
    8608            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8609            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8610            0 :         {
    8611            0 :           tree _q31_pops[1];
    8612            0 :           if (tree_power_of_two_cand (_q31, _q31_pops))
    8613              :             {
    8614            0 :               tree _q50 = _q31_pops[0];
    8615            0 :               {
    8616            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
    8617            0 :                 tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, LSHIFT_EXPR, FLOOR_MOD_EXPR);
    8618            0 :                 if (res) return res;
    8619              :               }
    8620              :             }
    8621              :         }
    8622            0 :         break;
    8623              :       }
    8624      1248738 :     default:;
    8625              :     }
    8626      1248738 : if (uniform_integer_cst_p (_p1))
    8627              :   {
    8628       854156 :     {
    8629       854156 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8630       854156 :       tree res = generic_simplify_417 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8631       854156 :       if (res) return res;
    8632              :     }
    8633              :   }
    8634      1248273 :   switch (TREE_CODE (_p0))
    8635              :     {
    8636       704430 :     CASE_CONVERT:
    8637       704430 :       {
    8638       704430 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8639       704430 :         switch (TREE_CODE (_q20))
    8640              :           {
    8641            4 :           case LT_EXPR:
    8642            4 :             {
    8643            4 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8644            4 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8645            4 :               if (integer_zerop (_q31))
    8646              :                 {
    8647            4 :                   switch (TREE_CODE (_p1))
    8648              :                     {
    8649            4 :                     case INTEGER_CST:
    8650            4 :                       {
    8651            4 :                         {
    8652            4 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    8653            4 :                           if (TYPE_SIGN (TREE_TYPE (captures[0])) == SIGNED
    8654            4 :  && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (TREE_TYPE (captures[0])) - 1)
    8655              : )
    8656              :                             {
    8657            0 :                               {
    8658            0 :  wide_int wone = wi::one (TYPE_PRECISION (type));
    8659            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1655;
    8660            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1655;
    8661            0 :                                   {
    8662            0 :                                     tree res_op0;
    8663            0 :                                     {
    8664            0 :                                       tree _o1[1], _r1;
    8665            0 :                                       _o1[0] = captures[0];
    8666            0 :                                       if (TREE_TYPE (_o1[0]) != type)
    8667              :                                         {
    8668            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    8669              :                                         }
    8670              :                                       else
    8671              :                                         _r1 = _o1[0];
    8672            0 :                                       res_op0 = _r1;
    8673              :                                     }
    8674            0 :                                     tree res_op1;
    8675            0 :                                     res_op1 =  wide_int_to_tree (type,
    8676            0 :  wi::lshift (wone, wi::to_wide (captures[2])));
    8677            0 :                                     tree _r;
    8678            0 :                                     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    8679            0 :                                     if (TREE_SIDE_EFFECTS (captures[1]))
    8680            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    8681            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1004, __FILE__, __LINE__, true);
    8682            0 :                                     return _r;
    8683              :                                   }
    8684            0 : next_after_fail1655:;
    8685            0 :                               }
    8686              :                             }
    8687              :                         }
    8688            4 :                         break;
    8689              :                       }
    8690              :                     default:;
    8691              :                     }
    8692              :                 }
    8693              :               break;
    8694              :             }
    8695          426 :           CASE_CONVERT:
    8696          426 :             {
    8697          426 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8698          426 :               switch (TREE_CODE (_q30))
    8699              :                 {
    8700            0 :                 case RSHIFT_EXPR:
    8701            0 :                   {
    8702            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8703            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8704            0 :                     switch (TREE_CODE (_q41))
    8705              :                       {
    8706            0 :                       case INTEGER_CST:
    8707            0 :                         {
    8708            0 :                           if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
    8709              :                             {
    8710            0 :                               {
    8711            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
    8712            0 :                                 if (wi::ltu_p (wi::to_wide (captures[2]), element_precision (type))
    8713            0 :  && INTEGRAL_TYPE_P (type)
    8714            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8715            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    8716            0 :  && TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[1]))
    8717            0 :  && (TYPE_PRECISION (TREE_TYPE (captures[0])) >= TYPE_PRECISION (type)
    8718            0 :  || wi::geu_p (wi::to_wide (captures[2]),
    8719            0 :  TYPE_PRECISION (type)
    8720            0 :  - TYPE_PRECISION (TREE_TYPE (captures[0]))))
    8721              : )
    8722              :                                   {
    8723            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1656;
    8724            0 :                                     {
    8725            0 :                                       tree res_op0;
    8726            0 :                                       {
    8727            0 :                                         tree _o1[1], _r1;
    8728            0 :                                         _o1[0] = captures[1];
    8729            0 :                                         if (TREE_TYPE (_o1[0]) != type)
    8730              :                                           {
    8731            0 :                                             _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    8732              :                                           }
    8733              :                                         else
    8734              :                                           _r1 = _o1[0];
    8735            0 :                                         res_op0 = _r1;
    8736              :                                       }
    8737            0 :                                       tree res_op1;
    8738            0 :                                       {
    8739            0 :                                         tree _o1[2], _r1;
    8740            0 :                                         _o1[0] =  build_minus_one_cst (type);
    8741            0 :                                         _o1[1] = captures[2];
    8742            0 :                                         _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8743            0 :                                         res_op1 = _r1;
    8744              :                                       }
    8745            0 :                                       tree _r;
    8746            0 :                                       _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    8747            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1005, __FILE__, __LINE__, true);
    8748            0 :                                       return _r;
    8749              :                                     }
    8750            0 : next_after_fail1656:;
    8751              :                                   }
    8752              :                               }
    8753              :                             }
    8754              :                           break;
    8755              :                         }
    8756              :                       default:;
    8757              :                       }
    8758              :                     break;
    8759              :                   }
    8760              :                 default:;
    8761              :                 }
    8762              :               break;
    8763              :             }
    8764              :           default:;
    8765              :           }
    8766              :         break;
    8767              :       }
    8768        19288 :     case RSHIFT_EXPR:
    8769        19288 :       {
    8770        19288 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8771        19288 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8772        19288 :         switch (TREE_CODE (_q21))
    8773              :           {
    8774           48 :           case INTEGER_CST:
    8775           48 :             {
    8776           48 :               if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8777              :                 {
    8778            3 :                   {
    8779            3 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8780            3 :                     tree res = generic_simplify_418 (loc, type, _p0, _p1, captures);
    8781            3 :                     if (res) return res;
    8782              :                   }
    8783              :                 }
    8784              :               break;
    8785              :             }
    8786              :           default:;
    8787              :           }
    8788              :         break;
    8789              :       }
    8790      1248270 :     default:;
    8791              :     }
    8792      1248270 : {
    8793      1248270 :   tree _p0_pops[1];
    8794      1248270 :   if (tree_nop_convert (_p0, _p0_pops))
    8795              :     {
    8796       671993 :       tree _q20 = _p0_pops[0];
    8797       671993 :       switch (TREE_CODE (_q20))
    8798              :         {
    8799           73 :         case RSHIFT_EXPR:
    8800           73 :           {
    8801           73 :             tree _q30 = TREE_OPERAND (_q20, 0);
    8802           73 :             tree _q31 = TREE_OPERAND (_q20, 1);
    8803           73 :             switch (TREE_CODE (_q31))
    8804              :               {
    8805           67 :               case INTEGER_CST:
    8806           67 :                 {
    8807           67 :                   if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    8808              :                     {
    8809            8 :                       {
    8810            8 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    8811            8 :                         tree res = generic_simplify_418 (loc, type, _p0, _p1, captures);
    8812            8 :                         if (res) return res;
    8813              :                       }
    8814              :                     }
    8815              :                   break;
    8816              :                 }
    8817              :               default:;
    8818              :               }
    8819              :             break;
    8820              :           }
    8821              :         default:;
    8822              :         }
    8823              :     }
    8824              : }
    8825      1248262 : if (integer_onep (_p0))
    8826              :   {
    8827       320025 :     switch (TREE_CODE (_p1))
    8828              :       {
    8829        47139 :       case MINUS_EXPR:
    8830        47139 :         {
    8831        47139 :           tree _q30 = TREE_OPERAND (_p1, 0);
    8832        47139 :           tree _q31 = TREE_OPERAND (_p1, 1);
    8833        47139 :           switch (TREE_CODE (_q30))
    8834              :             {
    8835        47136 :             case INTEGER_CST:
    8836        47136 :               {
    8837        47136 :                 {
    8838        47136 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
    8839        47136 :                   if (INTEGRAL_TYPE_P (type)
    8840        47136 :  && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1)
    8841        47136 :  && single_use (captures[1])
    8842              : )
    8843              :                     {
    8844        28569 :                       if (TYPE_UNSIGNED (type)
    8845              : )
    8846              :                         {
    8847        28563 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1657;
    8848        28563 :                           {
    8849        28563 :                             tree res_op0;
    8850        28563 :                             {
    8851        28563 :                               tree _o1[2], _r1;
    8852        28563 :                               _o1[0] = captures[0];
    8853        28563 :                               _o1[1] = captures[2];
    8854        28563 :                               _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8855        28563 :                               res_op0 = _r1;
    8856              :                             }
    8857        28563 :                             tree res_op1;
    8858        28563 :                             res_op1 = captures[3];
    8859        28563 :                             tree _r;
    8860        28563 :                             _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
    8861        28563 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
    8862        28563 :                             return _r;
    8863              :                           }
    8864            0 : next_after_fail1657:;
    8865              :                         }
    8866              :                       else
    8867              :                         {
    8868            6 :                           {
    8869            6 :  tree utype = unsigned_type_for (type);
    8870            6 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1658;
    8871            6 :                               {
    8872            6 :                                 tree res_op0;
    8873            6 :                                 {
    8874            6 :                                   tree _o1[2], _r1;
    8875            6 :                                   {
    8876            6 :                                     tree _o2[2], _r2;
    8877            6 :                                     {
    8878            6 :                                       tree _o3[1], _r3;
    8879            6 :                                       _o3[0] = captures[0];
    8880            6 :                                       if (TREE_TYPE (_o3[0]) != utype)
    8881              :                                         {
    8882            6 :                                           _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    8883              :                                         }
    8884              :                                       else
    8885              :                                         _r3 = _o3[0];
    8886            6 :                                       _o2[0] = _r3;
    8887              :                                     }
    8888            6 :                                     _o2[1] = captures[2];
    8889            6 :                                     _r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8890            6 :                                     _o1[0] = _r2;
    8891              :                                   }
    8892            6 :                                   _o1[1] = captures[3];
    8893            6 :                                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8894            6 :                                   res_op0 = _r1;
    8895              :                                 }
    8896            6 :                                 tree _r;
    8897            6 :                                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    8898            6 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    8899            6 :                                 return _r;
    8900              :                               }
    8901            0 : next_after_fail1658:;
    8902              :                           }
    8903              :                         }
    8904              :                     }
    8905              :                 }
    8906        18567 :                 break;
    8907              :               }
    8908              :             default:;
    8909              :             }
    8910              :           break;
    8911              :         }
    8912              :       default:;
    8913              :       }
    8914              :   }
    8915      1219693 :   if (integer_zerop (_p1))
    8916              :     {
    8917         1265 :       {
    8918         1265 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8919         1265 :         tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8920         1265 :         if (res) return res;
    8921              :       }
    8922              :     }
    8923      1218428 :   if (integer_zerop (_p0))
    8924              :     {
    8925          178 :       {
    8926          178 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8927          178 :         tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8928          178 :         if (res) return res;
    8929              :       }
    8930              :     }
    8931      1218250 :   switch (TREE_CODE (_p1))
    8932              :     {
    8933            0 :     case VECTOR_CST:
    8934            0 :       {
    8935            0 :         {
    8936            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8937            0 :           tree res = generic_simplify_421 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8938            0 :           if (res) return res;
    8939              :         }
    8940            0 :         break;
    8941              :       }
    8942            0 :     case CONSTRUCTOR:
    8943            0 :       {
    8944            0 :         {
    8945            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8946            0 :           tree res = generic_simplify_422 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8947            0 :           if (res) return res;
    8948              :         }
    8949            0 :         break;
    8950              :       }
    8951      1218250 :     default:;
    8952              :     }
    8953      1218250 :   switch (TREE_CODE (_p0))
    8954              :     {
    8955          280 :     case LSHIFT_EXPR:
    8956          280 :       {
    8957          280 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8958          280 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8959          280 :         switch (TREE_CODE (_q21))
    8960              :           {
    8961           39 :           case INTEGER_CST:
    8962           39 :             {
    8963           39 :               switch (TREE_CODE (_p1))
    8964              :                 {
    8965           39 :                 case INTEGER_CST:
    8966           39 :                   {
    8967           39 :                     {
    8968           39 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8969           39 :                       tree res = generic_simplify_423 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8970           39 :                       if (res) return res;
    8971              :                     }
    8972            0 :                     break;
    8973              :                   }
    8974              :                 default:;
    8975              :                 }
    8976              :               break;
    8977              :             }
    8978              :           default:;
    8979              :           }
    8980              :         break;
    8981              :       }
    8982       704056 :     CASE_CONVERT:
    8983       704056 :       {
    8984       704056 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8985       704056 :         switch (TREE_CODE (_q20))
    8986              :           {
    8987            0 :           case BIT_AND_EXPR:
    8988            0 :             {
    8989            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8990            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8991            0 :               switch (TREE_CODE (_q31))
    8992              :                 {
    8993            0 :                 case INTEGER_CST:
    8994            0 :                   {
    8995            0 :                     switch (TREE_CODE (_p1))
    8996              :                       {
    8997            0 :                       case INTEGER_CST:
    8998            0 :                         {
    8999            0 :                           {
    9000            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    9001            0 :                             tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LSHIFT_EXPR);
    9002            0 :                             if (res) return res;
    9003              :                           }
    9004            0 :                           break;
    9005              :                         }
    9006              :                       default:;
    9007              :                       }
    9008              :                     break;
    9009              :                   }
    9010              :                 default:;
    9011              :                 }
    9012              :               break;
    9013              :             }
    9014           11 :           case BIT_XOR_EXPR:
    9015           11 :             {
    9016           11 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9017           11 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9018           11 :               switch (TREE_CODE (_q31))
    9019              :                 {
    9020            0 :                 case INTEGER_CST:
    9021            0 :                   {
    9022            0 :                     switch (TREE_CODE (_p1))
    9023              :                       {
    9024            0 :                       case INTEGER_CST:
    9025            0 :                         {
    9026            0 :                           {
    9027            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    9028            0 :                             tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LSHIFT_EXPR);
    9029            0 :                             if (res) return res;
    9030              :                           }
    9031            0 :                           break;
    9032              :                         }
    9033              :                       default:;
    9034              :                       }
    9035              :                     break;
    9036              :                   }
    9037              :                 default:;
    9038              :                 }
    9039              :               break;
    9040              :             }
    9041           18 :           case BIT_IOR_EXPR:
    9042           18 :             {
    9043           18 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9044           18 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9045           18 :               switch (TREE_CODE (_q31))
    9046              :                 {
    9047           11 :                 case INTEGER_CST:
    9048           11 :                   {
    9049           11 :                     switch (TREE_CODE (_p1))
    9050              :                       {
    9051           11 :                       case INTEGER_CST:
    9052           11 :                         {
    9053           11 :                           {
    9054           11 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    9055           11 :                             tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LSHIFT_EXPR);
    9056           11 :                             if (res) return res;
    9057              :                           }
    9058            2 :                           break;
    9059              :                         }
    9060              :                       default:;
    9061              :                       }
    9062              :                     break;
    9063              :                   }
    9064              :                 default:;
    9065              :                 }
    9066              :               break;
    9067              :             }
    9068              :           default:;
    9069              :           }
    9070              :         break;
    9071              :       }
    9072        13761 :     case BIT_AND_EXPR:
    9073        13761 :       {
    9074        13761 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9075        13761 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9076        13761 :         switch (TREE_CODE (_q21))
    9077              :           {
    9078        13666 :           case INTEGER_CST:
    9079        13666 :             {
    9080        13666 :               switch (TREE_CODE (_p1))
    9081              :                 {
    9082        13527 :                 case INTEGER_CST:
    9083        13527 :                   {
    9084        13527 :                     {
    9085        13527 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    9086        13527 :                       tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LSHIFT_EXPR);
    9087        13527 :                       if (res) return res;
    9088              :                     }
    9089            7 :                     break;
    9090              :                   }
    9091              :                 default:;
    9092              :                 }
    9093              :               break;
    9094              :             }
    9095              :           default:;
    9096              :           }
    9097              :         break;
    9098              :       }
    9099           76 :     case BIT_XOR_EXPR:
    9100           76 :       {
    9101           76 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9102           76 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9103           76 :         switch (TREE_CODE (_q21))
    9104              :           {
    9105            7 :           case INTEGER_CST:
    9106            7 :             {
    9107            7 :               switch (TREE_CODE (_p1))
    9108              :                 {
    9109            7 :                 case INTEGER_CST:
    9110            7 :                   {
    9111            7 :                     {
    9112            7 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    9113            7 :                       tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LSHIFT_EXPR);
    9114            7 :                       if (res) return res;
    9115              :                     }
    9116            0 :                     break;
    9117              :                   }
    9118              :                 default:;
    9119              :                 }
    9120              :               break;
    9121              :             }
    9122              :           default:;
    9123              :           }
    9124              :         break;
    9125              :       }
    9126           78 :     case BIT_IOR_EXPR:
    9127           78 :       {
    9128           78 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9129           78 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9130           78 :         switch (TREE_CODE (_q21))
    9131              :           {
    9132            2 :           case INTEGER_CST:
    9133            2 :             {
    9134            2 :               switch (TREE_CODE (_p1))
    9135              :                 {
    9136            2 :                 case INTEGER_CST:
    9137            2 :                   {
    9138            2 :                     {
    9139            2 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    9140            2 :                       tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LSHIFT_EXPR);
    9141            2 :                       if (res) return res;
    9142              :                     }
    9143            0 :                     break;
    9144              :                   }
    9145              :                 default:;
    9146              :                 }
    9147              :               break;
    9148              :             }
    9149              :           default:;
    9150              :           }
    9151              :         break;
    9152              :       }
    9153            1 :     case VEC_COND_EXPR:
    9154            1 :       {
    9155            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9156            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9157            1 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9158            1 :         switch (TREE_CODE (_p1))
    9159              :           {
    9160            0 :           case VEC_COND_EXPR:
    9161            0 :             {
    9162            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    9163            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    9164            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    9165            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9166              :                 {
    9167            0 :                   {
    9168            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    9169            0 :                     if (VECTOR_TYPE_P (type)
    9170            0 :  && (TREE_CODE_CLASS (LSHIFT_EXPR) != tcc_comparison
    9171              :  || types_match (type, TREE_TYPE (captures[2]))
    9172              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9173              :  || (optimize_vectors_before_lowering_p ()
    9174              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9175              : )
    9176              :                       {
    9177            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1659;
    9178            0 :                         {
    9179            0 :                           tree res_op0;
    9180            0 :                           res_op0 = captures[1];
    9181            0 :                           tree res_op1;
    9182            0 :                           {
    9183            0 :                             tree _o1[2], _r1;
    9184            0 :                             _o1[0] = captures[2];
    9185            0 :                             _o1[1] = captures[5];
    9186            0 :                             _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    9187            0 :                             if (EXPR_P (_r1))
    9188            0 :                               goto next_after_fail1659;
    9189            0 :                             res_op1 = _r1;
    9190              :                           }
    9191            0 :                           tree res_op2;
    9192            0 :                           {
    9193            0 :                             tree _o1[2], _r1;
    9194            0 :                             _o1[0] = captures[3];
    9195            0 :                             _o1[1] = captures[6];
    9196            0 :                             _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    9197            0 :                             if (EXPR_P (_r1))
    9198            0 :                               goto next_after_fail1659;
    9199            0 :                             res_op2 = _r1;
    9200              :                           }
    9201            0 :                           tree _r;
    9202            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9203            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    9204            0 :                           return _r;
    9205              :                         }
    9206            0 : next_after_fail1659:;
    9207              :                       }
    9208              :                   }
    9209              :                 }
    9210              :               break;
    9211              :             }
    9212            1 :           default:;
    9213              :           }
    9214            1 :         {
    9215            1 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    9216            1 :           if (VECTOR_TYPE_P (type)
    9217            1 :  && (TREE_CODE_CLASS (LSHIFT_EXPR) != tcc_comparison
    9218              :  || types_match (type, TREE_TYPE (captures[2]))
    9219              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9220              :  || (optimize_vectors_before_lowering_p ()
    9221              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9222              : )
    9223              :             {
    9224            1 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1660;
    9225            1 :               {
    9226            1 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1660;
    9227            0 :                 tree res_op0;
    9228            0 :                 res_op0 = captures[1];
    9229            0 :                 tree res_op1;
    9230            0 :                 {
    9231            0 :                   tree _o1[2], _r1;
    9232            0 :                   _o1[0] = captures[2];
    9233            0 :                   _o1[1] = unshare_expr (captures[4]);
    9234            0 :                   _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    9235            0 :                   if (EXPR_P (_r1))
    9236            0 :                     goto next_after_fail1660;
    9237            0 :                   res_op1 = _r1;
    9238              :                 }
    9239            0 :                 tree res_op2;
    9240            0 :                 {
    9241            0 :                   tree _o1[2], _r1;
    9242            0 :                   _o1[0] = captures[3];
    9243            0 :                   _o1[1] = captures[4];
    9244            0 :                   _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    9245            0 :                   if (EXPR_P (_r1))
    9246            0 :                     goto next_after_fail1660;
    9247            0 :                   res_op2 = _r1;
    9248              :                 }
    9249            0 :                 tree _r;
    9250            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9251            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    9252            0 :                 return _r;
    9253              :               }
    9254            1 : next_after_fail1660:;
    9255              :             }
    9256              :         }
    9257            1 :         break;
    9258              :       }
    9259      1204673 :     default:;
    9260              :     }
    9261      1204673 :   switch (TREE_CODE (_p1))
    9262              :     {
    9263            3 :     case VEC_COND_EXPR:
    9264            3 :       {
    9265            3 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9266            3 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9267            3 :         tree _q32 = TREE_OPERAND (_p1, 2);
    9268            3 :         {
    9269            3 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    9270            3 :           if (VECTOR_TYPE_P (type)
    9271            3 :  && (TREE_CODE_CLASS (LSHIFT_EXPR) != tcc_comparison
    9272              :  || types_match (type, TREE_TYPE (captures[3]))
    9273              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    9274              :  || (optimize_vectors_before_lowering_p ()
    9275              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    9276              : )
    9277              :             {
    9278            3 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1661;
    9279            3 :               {
    9280            3 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1661;
    9281            1 :                 tree res_op0;
    9282            1 :                 res_op0 = captures[2];
    9283            1 :                 tree res_op1;
    9284            1 :                 {
    9285            1 :                   tree _o1[2], _r1;
    9286            1 :                   _o1[0] = unshare_expr (captures[0]);
    9287            1 :                   _o1[1] = captures[3];
    9288            1 :                   _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    9289            1 :                   if (EXPR_P (_r1))
    9290            0 :                     goto next_after_fail1661;
    9291            1 :                   res_op1 = _r1;
    9292              :                 }
    9293            1 :                 tree res_op2;
    9294            1 :                 {
    9295            1 :                   tree _o1[2], _r1;
    9296            1 :                   _o1[0] = captures[0];
    9297            1 :                   _o1[1] = captures[4];
    9298            1 :                   _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    9299            1 :                   if (EXPR_P (_r1))
    9300            0 :                     goto next_after_fail1661;
    9301            1 :                   res_op2 = _r1;
    9302              :                 }
    9303            1 :                 tree _r;
    9304            1 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9305            1 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    9306            1 :                 return _r;
    9307              :               }
    9308            2 : next_after_fail1661:;
    9309              :             }
    9310              :         }
    9311            2 :         break;
    9312              :       }
    9313      1204672 :     default:;
    9314              :     }
    9315      1204672 :   switch (TREE_CODE (_p0))
    9316              :     {
    9317            0 :     case VEC_PERM_EXPR:
    9318            0 :       {
    9319            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9320            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9321            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9322            0 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    9323              :           {
    9324            0 :             switch (TREE_CODE (_p1))
    9325              :               {
    9326            0 :               case VEC_PERM_EXPR:
    9327            0 :                 {
    9328            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    9329            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    9330            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    9331            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
    9332              :                     {
    9333            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    9334              :                         {
    9335            0 :                           {
    9336            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
    9337            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
    9338              : )
    9339              :                               {
    9340            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1662;
    9341            0 :                                 {
    9342            0 :                                   tree res_op0;
    9343            0 :                                   {
    9344            0 :                                     tree _o1[2], _r1;
    9345            0 :                                     _o1[0] = captures[0];
    9346            0 :                                     _o1[1] = captures[2];
    9347            0 :                                     _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9348            0 :                                     captures[3] = _r1;
    9349              :                                   }
    9350            0 :                                   res_op0 = unshare_expr (captures[3]);
    9351            0 :                                   tree res_op1;
    9352            0 :                                   res_op1 = captures[3];
    9353            0 :                                   tree res_op2;
    9354            0 :                                   res_op2 = captures[1];
    9355            0 :                                   tree _r;
    9356            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
    9357            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    9358            0 :                                   return _r;
    9359              :                                 }
    9360            0 : next_after_fail1662:;
    9361              :                               }
    9362              :                           }
    9363              :                         }
    9364              :                     }
    9365              :                   break;
    9366              :                 }
    9367              :               default:;
    9368              :               }
    9369              :           }
    9370              :         break;
    9371              :       }
    9372              :     default:;
    9373              :     }
    9374              :   return NULL_TREE;
    9375              : }
    9376              : 
    9377              : tree
    9378        80919 : generic_simplify_MIN_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    9379              : {
    9380        80919 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    9381        80919 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    9382              :     {
    9383            0 :       {
    9384            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9385            0 :         tree res = generic_simplify_518 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9386            0 :         if (res) return res;
    9387              :       }
    9388              :     }
    9389        80919 :   switch (TREE_CODE (_p0))
    9390              :     {
    9391           46 :     case MIN_EXPR:
    9392           46 :       {
    9393           46 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9394           46 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9395           46 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9396              :           {
    9397            0 :             {
    9398            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9399            0 :               tree res = generic_simplify_519 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9400            0 :               if (res) return res;
    9401              :             }
    9402              :           }
    9403           46 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9404              :           {
    9405            0 :             {
    9406            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    9407            0 :               tree res = generic_simplify_519 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9408            0 :               if (res) return res;
    9409              :             }
    9410              :           }
    9411              :         break;
    9412              :       }
    9413        80919 :     default:;
    9414              :     }
    9415        80919 :   switch (TREE_CODE (_p1))
    9416              :     {
    9417            0 :     case MIN_EXPR:
    9418            0 :       {
    9419            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9420            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9421            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9422              :           {
    9423            0 :             {
    9424            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
    9425            0 :               tree res = generic_simplify_520 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9426            0 :               if (res) return res;
    9427              :             }
    9428              :           }
    9429            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9430              :           {
    9431            0 :             {
    9432            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
    9433            0 :               tree res = generic_simplify_520 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9434            0 :               if (res) return res;
    9435              :             }
    9436              :           }
    9437              :         break;
    9438              :       }
    9439        80919 :     default:;
    9440              :     }
    9441        80919 :   switch (TREE_CODE (_p0))
    9442              :     {
    9443            4 :     case MAX_EXPR:
    9444            4 :       {
    9445            4 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9446            4 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9447            4 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9448              :           {
    9449            3 :             {
    9450            3 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9451            3 :               tree res = generic_simplify_521 (loc, type, _p0, _p1, captures);
    9452            3 :               if (res) return res;
    9453              :             }
    9454              :           }
    9455            1 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9456              :           {
    9457            1 :             {
    9458            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9459            1 :               tree res = generic_simplify_521 (loc, type, _p0, _p1, captures);
    9460            1 :               if (res) return res;
    9461              :             }
    9462              :           }
    9463              :         break;
    9464              :       }
    9465        80915 :     default:;
    9466              :     }
    9467        80915 :   switch (TREE_CODE (_p1))
    9468              :     {
    9469            0 :     case MAX_EXPR:
    9470            0 :       {
    9471            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9472            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9473            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9474              :           {
    9475            0 :             {
    9476            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    9477            0 :               tree res = generic_simplify_521 (loc, type, _p0, _p1, captures);
    9478            0 :               if (res) return res;
    9479              :             }
    9480              :           }
    9481            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9482              :           {
    9483            0 :             {
    9484            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
    9485            0 :               tree res = generic_simplify_521 (loc, type, _p0, _p1, captures);
    9486            0 :               if (res) return res;
    9487              :             }
    9488              :           }
    9489              :         break;
    9490              :       }
    9491            0 :     case NEGATE_EXPR:
    9492            0 :       {
    9493            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9494            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9495              :           {
    9496            0 :             {
    9497            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9498            0 :               tree res = generic_simplify_522 (loc, type, _p0, _p1, captures);
    9499            0 :               if (res) return res;
    9500              :             }
    9501              :           }
    9502              :         break;
    9503              :       }
    9504        80915 :     default:;
    9505              :     }
    9506        80915 :   switch (TREE_CODE (_p0))
    9507              :     {
    9508            2 :     case NEGATE_EXPR:
    9509            2 :       {
    9510            2 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9511            2 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9512              :           {
    9513            2 :             {
    9514            2 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    9515            2 :               tree res = generic_simplify_522 (loc, type, _p0, _p1, captures);
    9516            2 :               if (res) return res;
    9517              :             }
    9518              :           }
    9519              :         break;
    9520              :       }
    9521        80913 :     default:;
    9522              :     }
    9523        80913 :   {
    9524        80913 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9525        80913 :     if (INTEGRAL_TYPE_P (type)
    9526        79092 :  && TYPE_MIN_VALUE (type)
    9527       160005 :  && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST)
    9528              : )
    9529              :       {
    9530          544 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1726;
    9531          544 :         {
    9532          544 :           tree _r;
    9533          544 :           _r = captures[1];
    9534          544 :           if (TREE_SIDE_EFFECTS (captures[0]))
    9535            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    9536          544 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
    9537          544 :           return _r;
    9538              :         }
    9539            0 : next_after_fail1726:;
    9540              :       }
    9541              :     else
    9542              :       {
    9543        80369 :         if (INTEGRAL_TYPE_P (type)
    9544        78548 :  && TYPE_MAX_VALUE (type)
    9545       158917 :  && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST)
    9546              : )
    9547              :           {
    9548            1 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1727;
    9549            1 :             {
    9550            1 :               tree _r;
    9551            1 :               _r = captures[0];
    9552            1 :               if (TREE_SIDE_EFFECTS (captures[1]))
    9553            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    9554            1 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
    9555            1 :               return _r;
    9556              :             }
    9557            0 : next_after_fail1727:;
    9558              :           }
    9559              :       }
    9560              :   }
    9561        80368 :   switch (TREE_CODE (_p0))
    9562              :     {
    9563         5613 :     case PLUS_EXPR:
    9564         5613 :       {
    9565         5613 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9566         5613 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9567         5613 :         switch (TREE_CODE (_p1))
    9568              :           {
    9569           15 :           case PLUS_EXPR:
    9570           15 :             {
    9571           15 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9572           15 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9573           15 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9574              :                 {
    9575            0 :                   {
    9576            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9577            0 :                     tree res = generic_simplify_523 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9578            0 :                     if (res) return res;
    9579              :                   }
    9580            0 :                   {
    9581            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q50, _q21, _p0, _q20 };
    9582            0 :                     tree res = generic_simplify_523 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9583            0 :                     if (res) return res;
    9584              :                   }
    9585              :                 }
    9586           15 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    9587              :                 {
    9588            0 :                   {
    9589            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
    9590            0 :                     tree res = generic_simplify_523 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9591            0 :                     if (res) return res;
    9592              :                   }
    9593              :                 }
    9594           15 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    9595              :                 {
    9596            1 :                   {
    9597            1 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q51, _q21, _p0, _q20 };
    9598            1 :                     tree res = generic_simplify_523 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9599            1 :                     if (res) return res;
    9600              :                   }
    9601              :                 }
    9602              :               break;
    9603              :             }
    9604         5612 :           default:;
    9605              :           }
    9606         5612 :         switch (TREE_CODE (_q21))
    9607              :           {
    9608         5484 :           case INTEGER_CST:
    9609         5484 :             {
    9610         5484 :               if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9611              :                 {
    9612            0 :                   {
    9613            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    9614            0 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    9615              : )
    9616              :                       {
    9617            0 :                         if (tree_int_cst_sgn (captures[2]) > 0
    9618              : )
    9619              :                           {
    9620            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1728;
    9621            0 :                             {
    9622            0 :                               tree _r;
    9623            0 :                               _r = captures[0];
    9624            0 :                               if (TREE_SIDE_EFFECTS (captures[2]))
    9625            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9626            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
    9627            0 :                               return _r;
    9628              :                             }
    9629            0 : next_after_fail1728:;
    9630              :                           }
    9631              :                         else
    9632              :                           {
    9633            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1729;
    9634            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1729;
    9635            0 :                             {
    9636            0 :                               tree _r;
    9637            0 :                               _r = captures[1];
    9638            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
    9639            0 :                               return _r;
    9640              :                             }
    9641            0 : next_after_fail1729:;
    9642              :                           }
    9643              :                       }
    9644              :                   }
    9645              :                 }
    9646              :               break;
    9647              :             }
    9648              :           default:;
    9649              :           }
    9650              :         break;
    9651              :       }
    9652          998 :     case MINUS_EXPR:
    9653          998 :       {
    9654          998 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9655          998 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9656          998 :         switch (TREE_CODE (_p1))
    9657              :           {
    9658          980 :           case MINUS_EXPR:
    9659          980 :             {
    9660          980 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9661          980 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9662          980 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9663              :                 {
    9664            0 :                   {
    9665            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9666            0 :                     tree res = generic_simplify_524 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9667            0 :                     if (res) return res;
    9668              :                   }
    9669            0 :                   {
    9670            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q50, _q21, _p0, _q20 };
    9671            0 :                     tree res = generic_simplify_524 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9672            0 :                     if (res) return res;
    9673              :                   }
    9674              :                 }
    9675              :               break;
    9676              :             }
    9677              :           default:;
    9678              :           }
    9679              :         break;
    9680              :       }
    9681        80367 :     default:;
    9682              :     }
    9683        80367 :   switch (TREE_CODE (_p1))
    9684              :     {
    9685           21 :     case PLUS_EXPR:
    9686           21 :       {
    9687           21 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9688           21 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9689           21 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9690              :           {
    9691            0 :             switch (TREE_CODE (_q31))
    9692              :               {
    9693            0 :               case INTEGER_CST:
    9694            0 :                 {
    9695            0 :                   {
    9696            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    9697            0 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    9698              : )
    9699              :                       {
    9700            0 :                         if (tree_int_cst_sgn (captures[2]) > 0
    9701              : )
    9702              :                           {
    9703            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1730;
    9704            0 :                             {
    9705            0 :                               tree _r;
    9706            0 :                               _r = captures[0];
    9707            0 :                               if (TREE_SIDE_EFFECTS (captures[2]))
    9708            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9709            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
    9710            0 :                               return _r;
    9711              :                             }
    9712            0 : next_after_fail1730:;
    9713              :                           }
    9714              :                         else
    9715              :                           {
    9716            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1731;
    9717            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1731;
    9718            0 :                             {
    9719            0 :                               tree _r;
    9720            0 :                               _r = captures[1];
    9721            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
    9722            0 :                               return _r;
    9723              :                             }
    9724            0 : next_after_fail1731:;
    9725              :                           }
    9726              :                       }
    9727              :                   }
    9728            0 :                   break;
    9729              :                 }
    9730              :               default:;
    9731              :               }
    9732              :           }
    9733              :         break;
    9734              :       }
    9735        80367 :     default:;
    9736              :     }
    9737        80367 :   switch (TREE_CODE (_p0))
    9738              :     {
    9739           46 :     case MIN_EXPR:
    9740           46 :       {
    9741           46 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9742           46 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9743           46 :         switch (TREE_CODE (_p1))
    9744              :           {
    9745            0 :           case MAX_EXPR:
    9746            0 :             {
    9747            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9748            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9749            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9750              :                 {
    9751            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9752              :                     {
    9753            0 :                       {
    9754            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9755            0 :                         if (!HONOR_NANS (captures[0])
    9756              : )
    9757              :                           {
    9758            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1732;
    9759            0 :                             {
    9760            0 :                               tree res_op0;
    9761            0 :                               res_op0 = captures[0];
    9762            0 :                               tree res_op1;
    9763            0 :                               res_op1 = captures[1];
    9764            0 :                               tree _r;
    9765            0 :                               _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    9766            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
    9767            0 :                               return _r;
    9768              :                             }
    9769            0 : next_after_fail1732:;
    9770              :                           }
    9771              :                       }
    9772              :                     }
    9773              :                 }
    9774            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    9775              :                 {
    9776            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    9777              :                     {
    9778            0 :                       {
    9779            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9780            0 :                         if (!HONOR_NANS (captures[0])
    9781              : )
    9782              :                           {
    9783            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1733;
    9784            0 :                             {
    9785            0 :                               tree res_op0;
    9786            0 :                               res_op0 = captures[0];
    9787            0 :                               tree res_op1;
    9788            0 :                               res_op1 = captures[1];
    9789            0 :                               tree _r;
    9790            0 :                               _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    9791            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
    9792            0 :                               return _r;
    9793              :                             }
    9794            0 : next_after_fail1733:;
    9795              :                           }
    9796              :                       }
    9797              :                     }
    9798              :                 }
    9799              :               break;
    9800              :             }
    9801              :           default:;
    9802              :           }
    9803              :         break;
    9804              :       }
    9805            0 :     case MAX_EXPR:
    9806            0 :       {
    9807            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9808            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9809            0 :         switch (TREE_CODE (_p1))
    9810              :           {
    9811            0 :           case MIN_EXPR:
    9812            0 :             {
    9813            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9814            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9815            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9816              :                 {
    9817            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9818              :                     {
    9819            0 :                       {
    9820            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9821            0 :                         if (!HONOR_NANS (captures[0])
    9822              : )
    9823              :                           {
    9824            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1734;
    9825            0 :                             {
    9826            0 :                               tree res_op0;
    9827            0 :                               res_op0 = captures[0];
    9828            0 :                               tree res_op1;
    9829            0 :                               res_op1 = captures[1];
    9830            0 :                               tree _r;
    9831            0 :                               _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    9832            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
    9833            0 :                               return _r;
    9834              :                             }
    9835            0 : next_after_fail1734:;
    9836              :                           }
    9837              :                       }
    9838              :                     }
    9839              :                 }
    9840            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    9841              :                 {
    9842            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    9843              :                     {
    9844            0 :                       {
    9845            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9846            0 :                         if (!HONOR_NANS (captures[0])
    9847              : )
    9848              :                           {
    9849            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1735;
    9850            0 :                             {
    9851            0 :                               tree res_op0;
    9852            0 :                               res_op0 = captures[0];
    9853            0 :                               tree res_op1;
    9854            0 :                               res_op1 = captures[1];
    9855            0 :                               tree _r;
    9856            0 :                               _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    9857            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
    9858            0 :                               return _r;
    9859              :                             }
    9860            0 : next_after_fail1735:;
    9861              :                           }
    9862              :                       }
    9863              :                     }
    9864              :                 }
    9865              :               break;
    9866              :             }
    9867              :           default:;
    9868              :           }
    9869              :         break;
    9870              :       }
    9871            1 :     case BIT_AND_EXPR:
    9872            1 :       {
    9873            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9874            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9875            1 :         switch (TREE_CODE (_q21))
    9876              :           {
    9877            1 :           case INTEGER_CST:
    9878            1 :             {
    9879            1 :               switch (TREE_CODE (_p1))
    9880              :                 {
    9881            0 :                 case BIT_AND_EXPR:
    9882            0 :                   {
    9883            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    9884            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    9885            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9886              :                       {
    9887            0 :                         switch (TREE_CODE (_q51))
    9888              :                           {
    9889            0 :                           case INTEGER_CST:
    9890            0 :                             {
    9891            0 :                               {
    9892            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    9893            0 :                                 tree res = generic_simplify_525 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9894            0 :                                 if (res) return res;
    9895              :                               }
    9896            0 :                               break;
    9897              :                             }
    9898              :                           default:;
    9899              :                           }
    9900              :                       }
    9901              :                     break;
    9902              :                   }
    9903              :                 default:;
    9904              :                 }
    9905              :               break;
    9906              :             }
    9907              :           default:;
    9908              :           }
    9909              :         break;
    9910              :       }
    9911        80367 :     default:;
    9912              :     }
    9913        80367 :   switch (TREE_CODE (_p1))
    9914              :     {
    9915            0 :     case BIT_AND_EXPR:
    9916            0 :       {
    9917            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9918            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9919            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9920              :           {
    9921            0 :             switch (TREE_CODE (_q31))
    9922              :               {
    9923            0 :               case INTEGER_CST:
    9924            0 :                 {
    9925            0 :                   {
    9926            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    9927            0 :                     tree res = generic_simplify_526 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9928            0 :                     if (res) return res;
    9929              :                   }
    9930            0 :                   break;
    9931              :                 }
    9932              :               default:;
    9933              :               }
    9934              :           }
    9935              :         break;
    9936              :       }
    9937        80367 :     default:;
    9938              :     }
    9939        80367 :   switch (TREE_CODE (_p0))
    9940              :     {
    9941          574 :     CASE_CONVERT:
    9942          574 :       {
    9943          574 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9944          574 :         switch (TREE_CODE (_q20))
    9945              :           {
    9946           47 :           case ADDR_EXPR:
    9947           47 :             {
    9948           47 :               switch (TREE_CODE (_p1))
    9949              :                 {
    9950           47 :                 CASE_CONVERT:
    9951           47 :                   {
    9952           47 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    9953           47 :                     switch (TREE_CODE (_q40))
    9954              :                       {
    9955           47 :                       case ADDR_EXPR:
    9956           47 :                         {
    9957           47 :                           {
    9958           47 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9959           47 :                             tree res = generic_simplify_527 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
    9960           47 :                             if (res) return res;
    9961              :                           }
    9962           47 :                           break;
    9963              :                         }
    9964              :                       default:;
    9965              :                       }
    9966              :                     break;
    9967              :                   }
    9968            0 :                 case ADDR_EXPR:
    9969            0 :                   {
    9970            0 :                     {
    9971            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
    9972            0 :                       tree res = generic_simplify_528 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
    9973            0 :                       if (res) return res;
    9974              :                     }
    9975            0 :                     break;
    9976              :                   }
    9977              :                 default:;
    9978              :                 }
    9979              :               break;
    9980              :             }
    9981              :           default:;
    9982              :           }
    9983              :         break;
    9984              :       }
    9985           10 :     case ADDR_EXPR:
    9986           10 :       {
    9987           10 :         switch (TREE_CODE (_p1))
    9988              :           {
    9989            0 :           CASE_CONVERT:
    9990            0 :             {
    9991            0 :               tree _q30 = TREE_OPERAND (_p1, 0);
    9992            0 :               switch (TREE_CODE (_q30))
    9993              :                 {
    9994            0 :                 case ADDR_EXPR:
    9995            0 :                   {
    9996            0 :                     {
    9997            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
    9998            0 :                       tree res = generic_simplify_529 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
    9999            0 :                       if (res) return res;
   10000              :                     }
   10001            0 :                     break;
   10002              :                   }
   10003              :                 default:;
   10004              :                 }
   10005              :               break;
   10006              :             }
   10007           10 :           case ADDR_EXPR:
   10008           10 :             {
   10009           10 :               {
   10010           10 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
   10011           10 :                 tree res = generic_simplify_530 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
   10012           10 :                 if (res) return res;
   10013              :               }
   10014           10 :               break;
   10015              :             }
   10016              :           default:;
   10017              :           }
   10018              :         break;
   10019              :       }
   10020            0 :     case NEGATE_EXPR:
   10021            0 :       {
   10022            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10023            0 :         switch (TREE_CODE (_p1))
   10024              :           {
   10025            0 :           case NEGATE_EXPR:
   10026            0 :             {
   10027            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10028            0 :               {
   10029            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10030            0 :                 if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
   10031            0 :  || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
   10032            0 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
   10033              : )
   10034              :                   {
   10035            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1736;
   10036            0 :                     {
   10037            0 :                       tree res_op0;
   10038            0 :                       {
   10039            0 :                         tree _o1[2], _r1;
   10040            0 :                         _o1[0] = captures[1];
   10041            0 :                         _o1[1] = captures[3];
   10042            0 :                         _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10043            0 :                         res_op0 = _r1;
   10044              :                       }
   10045            0 :                       tree _r;
   10046            0 :                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
   10047            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
   10048            0 :                       return _r;
   10049              :                     }
   10050            0 : next_after_fail1736:;
   10051              :                   }
   10052              :               }
   10053            0 :               break;
   10054              :             }
   10055              :           default:;
   10056              :           }
   10057              :         break;
   10058              :       }
   10059            0 :     case BIT_NOT_EXPR:
   10060            0 :       {
   10061            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10062            0 :         switch (TREE_CODE (_p1))
   10063              :           {
   10064            0 :           case BIT_NOT_EXPR:
   10065            0 :             {
   10066            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10067            0 :               {
   10068            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10069            0 :                 tree res = generic_simplify_531 (loc, type, _p0, _p1, captures, MIN_EXPR, MAX_EXPR);
   10070            0 :                 if (res) return res;
   10071              :               }
   10072            0 :               break;
   10073              :             }
   10074              :           default:;
   10075              :           }
   10076              :         break;
   10077              :       }
   10078            0 :     case VEC_COND_EXPR:
   10079            0 :       {
   10080            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10081            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10082            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10083            0 :         switch (TREE_CODE (_p1))
   10084              :           {
   10085            0 :           case VEC_COND_EXPR:
   10086            0 :             {
   10087            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   10088            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   10089            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   10090            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10091              :                 {
   10092            0 :                   {
   10093            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   10094            0 :                     if (VECTOR_TYPE_P (type)
   10095            0 :  && (TREE_CODE_CLASS (MIN_EXPR) != tcc_comparison
   10096              :  || types_match (type, TREE_TYPE (captures[2]))
   10097              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10098              :  || (optimize_vectors_before_lowering_p ()
   10099              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10100              : )
   10101              :                       {
   10102            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1737;
   10103            0 :                         {
   10104            0 :                           tree res_op0;
   10105            0 :                           res_op0 = captures[1];
   10106            0 :                           tree res_op1;
   10107            0 :                           {
   10108            0 :                             tree _o1[2], _r1;
   10109            0 :                             _o1[0] = captures[2];
   10110            0 :                             _o1[1] = captures[5];
   10111            0 :                             _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
   10112            0 :                             if (EXPR_P (_r1))
   10113            0 :                               goto next_after_fail1737;
   10114            0 :                             res_op1 = _r1;
   10115              :                           }
   10116            0 :                           tree res_op2;
   10117            0 :                           {
   10118            0 :                             tree _o1[2], _r1;
   10119            0 :                             _o1[0] = captures[3];
   10120            0 :                             _o1[1] = captures[6];
   10121            0 :                             _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
   10122            0 :                             if (EXPR_P (_r1))
   10123            0 :                               goto next_after_fail1737;
   10124            0 :                             res_op2 = _r1;
   10125              :                           }
   10126            0 :                           tree _r;
   10127            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10128            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
   10129            0 :                           return _r;
   10130              :                         }
   10131            0 : next_after_fail1737:;
   10132              :                       }
   10133              :                   }
   10134              :                 }
   10135              :               break;
   10136              :             }
   10137            0 :           default:;
   10138              :           }
   10139            0 :         {
   10140            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10141            0 :           if (VECTOR_TYPE_P (type)
   10142            0 :  && (TREE_CODE_CLASS (MIN_EXPR) != tcc_comparison
   10143              :  || types_match (type, TREE_TYPE (captures[2]))
   10144              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10145              :  || (optimize_vectors_before_lowering_p ()
   10146              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10147              : )
   10148              :             {
   10149            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1738;
   10150            0 :               {
   10151            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1738;
   10152            0 :                 tree res_op0;
   10153            0 :                 res_op0 = captures[1];
   10154            0 :                 tree res_op1;
   10155            0 :                 {
   10156            0 :                   tree _o1[2], _r1;
   10157            0 :                   _o1[0] = captures[2];
   10158            0 :                   _o1[1] = unshare_expr (captures[4]);
   10159            0 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
   10160            0 :                   if (EXPR_P (_r1))
   10161            0 :                     goto next_after_fail1738;
   10162            0 :                   res_op1 = _r1;
   10163              :                 }
   10164            0 :                 tree res_op2;
   10165            0 :                 {
   10166            0 :                   tree _o1[2], _r1;
   10167            0 :                   _o1[0] = captures[3];
   10168            0 :                   _o1[1] = captures[4];
   10169            0 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
   10170            0 :                   if (EXPR_P (_r1))
   10171            0 :                     goto next_after_fail1738;
   10172            0 :                   res_op2 = _r1;
   10173              :                 }
   10174            0 :                 tree _r;
   10175            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10176            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
   10177            0 :                 return _r;
   10178              :               }
   10179            0 : next_after_fail1738:;
   10180              :             }
   10181              :         }
   10182            0 :         break;
   10183              :       }
   10184        80367 :     default:;
   10185              :     }
   10186        80367 :   switch (TREE_CODE (_p1))
   10187              :     {
   10188            0 :     case VEC_COND_EXPR:
   10189            0 :       {
   10190            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10191            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10192            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10193            0 :         {
   10194            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10195            0 :           if (VECTOR_TYPE_P (type)
   10196            0 :  && (TREE_CODE_CLASS (MIN_EXPR) != tcc_comparison
   10197              :  || types_match (type, TREE_TYPE (captures[3]))
   10198              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10199              :  || (optimize_vectors_before_lowering_p ()
   10200              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10201              : )
   10202              :             {
   10203            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1739;
   10204            0 :               {
   10205            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1739;
   10206            0 :                 tree res_op0;
   10207            0 :                 res_op0 = captures[2];
   10208            0 :                 tree res_op1;
   10209            0 :                 {
   10210            0 :                   tree _o1[2], _r1;
   10211            0 :                   _o1[0] = unshare_expr (captures[0]);
   10212            0 :                   _o1[1] = captures[3];
   10213            0 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
   10214            0 :                   if (EXPR_P (_r1))
   10215            0 :                     goto next_after_fail1739;
   10216            0 :                   res_op1 = _r1;
   10217              :                 }
   10218            0 :                 tree res_op2;
   10219            0 :                 {
   10220            0 :                   tree _o1[2], _r1;
   10221            0 :                   _o1[0] = captures[0];
   10222            0 :                   _o1[1] = captures[4];
   10223            0 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
   10224            0 :                   if (EXPR_P (_r1))
   10225            0 :                     goto next_after_fail1739;
   10226            0 :                   res_op2 = _r1;
   10227              :                 }
   10228            0 :                 tree _r;
   10229            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10230            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
   10231            0 :                 return _r;
   10232              :               }
   10233            0 : next_after_fail1739:;
   10234              :             }
   10235              :         }
   10236            0 :         break;
   10237              :       }
   10238        80367 :     default:;
   10239              :     }
   10240        80367 :   if (tree_zero_one_valued_p (_p0))
   10241              :     {
   10242            3 :       if (tree_zero_one_valued_p (_p1))
   10243              :         {
   10244            2 :           {
   10245            2 :             tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10246            2 :             tree res = generic_simplify_532 (loc, type, _p0, _p1, captures, MIN_EXPR, BIT_AND_EXPR);
   10247            2 :             if (res) return res;
   10248              :           }
   10249              :         }
   10250              :     }
   10251              :   return NULL_TREE;
   10252              : }
   10253              : 
   10254              : tree
   10255       193399 : generic_simplify_ORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10256              : {
   10257       193399 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10258       193399 :   switch (TREE_CODE (_p0))
   10259              :     {
   10260            0 :     case VEC_COND_EXPR:
   10261            0 :       {
   10262            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10263            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10264            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10265            0 :         switch (TREE_CODE (_p1))
   10266              :           {
   10267            0 :           case VEC_COND_EXPR:
   10268            0 :             {
   10269            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   10270            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   10271            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   10272            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10273              :                 {
   10274            0 :                   {
   10275            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   10276            0 :                     if (VECTOR_TYPE_P (type)
   10277            0 :  && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
   10278            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10279            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10280              :  || (optimize_vectors_before_lowering_p ()
   10281            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10282              : )
   10283              :                       {
   10284            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1761;
   10285            0 :                         {
   10286            0 :                           tree res_op0;
   10287            0 :                           res_op0 = captures[1];
   10288            0 :                           tree res_op1;
   10289            0 :                           {
   10290            0 :                             tree _o1[2], _r1;
   10291            0 :                             _o1[0] = captures[2];
   10292            0 :                             _o1[1] = captures[5];
   10293            0 :                             _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10294            0 :                             if (EXPR_P (_r1))
   10295            0 :                               goto next_after_fail1761;
   10296            0 :                             res_op1 = _r1;
   10297              :                           }
   10298            0 :                           tree res_op2;
   10299            0 :                           {
   10300            0 :                             tree _o1[2], _r1;
   10301            0 :                             _o1[0] = captures[3];
   10302            0 :                             _o1[1] = captures[6];
   10303            0 :                             _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10304            0 :                             if (EXPR_P (_r1))
   10305            0 :                               goto next_after_fail1761;
   10306            0 :                             res_op2 = _r1;
   10307              :                           }
   10308            0 :                           tree _r;
   10309            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10310            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
   10311            0 :                           return _r;
   10312              :                         }
   10313            0 : next_after_fail1761:;
   10314              :                       }
   10315              :                   }
   10316              :                 }
   10317              :               break;
   10318              :             }
   10319            0 :           default:;
   10320              :           }
   10321            0 :         {
   10322            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10323            0 :           if (VECTOR_TYPE_P (type)
   10324            0 :  && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
   10325            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10326            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10327              :  || (optimize_vectors_before_lowering_p ()
   10328            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10329              : )
   10330              :             {
   10331            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1762;
   10332            0 :               {
   10333            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1762;
   10334            0 :                 tree res_op0;
   10335            0 :                 res_op0 = captures[1];
   10336            0 :                 tree res_op1;
   10337            0 :                 {
   10338            0 :                   tree _o1[2], _r1;
   10339            0 :                   _o1[0] = captures[2];
   10340            0 :                   _o1[1] = unshare_expr (captures[4]);
   10341            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10342            0 :                   if (EXPR_P (_r1))
   10343            0 :                     goto next_after_fail1762;
   10344            0 :                   res_op1 = _r1;
   10345              :                 }
   10346            0 :                 tree res_op2;
   10347            0 :                 {
   10348            0 :                   tree _o1[2], _r1;
   10349            0 :                   _o1[0] = captures[3];
   10350            0 :                   _o1[1] = captures[4];
   10351            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10352            0 :                   if (EXPR_P (_r1))
   10353            0 :                     goto next_after_fail1762;
   10354            0 :                   res_op2 = _r1;
   10355              :                 }
   10356            0 :                 tree _r;
   10357            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10358            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
   10359            0 :                 return _r;
   10360              :               }
   10361            0 : next_after_fail1762:;
   10362              :             }
   10363              :         }
   10364            0 :         break;
   10365              :       }
   10366       193399 :     default:;
   10367              :     }
   10368       193399 :   switch (TREE_CODE (_p1))
   10369              :     {
   10370            0 :     case VEC_COND_EXPR:
   10371            0 :       {
   10372            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10373            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10374            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10375            0 :         {
   10376            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10377            0 :           if (VECTOR_TYPE_P (type)
   10378            0 :  && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
   10379            0 :  || types_match (type, TREE_TYPE (captures[3]))
   10380            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10381              :  || (optimize_vectors_before_lowering_p ()
   10382            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10383              : )
   10384              :             {
   10385            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1763;
   10386            0 :               {
   10387            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1763;
   10388            0 :                 tree res_op0;
   10389            0 :                 res_op0 = captures[2];
   10390            0 :                 tree res_op1;
   10391            0 :                 {
   10392            0 :                   tree _o1[2], _r1;
   10393            0 :                   _o1[0] = unshare_expr (captures[0]);
   10394            0 :                   _o1[1] = captures[3];
   10395            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10396            0 :                   if (EXPR_P (_r1))
   10397            0 :                     goto next_after_fail1763;
   10398            0 :                   res_op1 = _r1;
   10399              :                 }
   10400            0 :                 tree res_op2;
   10401            0 :                 {
   10402            0 :                   tree _o1[2], _r1;
   10403            0 :                   _o1[0] = captures[0];
   10404            0 :                   _o1[1] = captures[4];
   10405            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10406            0 :                   if (EXPR_P (_r1))
   10407            0 :                     goto next_after_fail1763;
   10408            0 :                   res_op2 = _r1;
   10409              :                 }
   10410            0 :                 tree _r;
   10411            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10412            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
   10413            0 :                 return _r;
   10414              :               }
   10415            0 : next_after_fail1763:;
   10416              :             }
   10417              :         }
   10418            0 :         break;
   10419              :       }
   10420       193399 :     default:;
   10421              :     }
   10422       193399 :   switch (TREE_CODE (_p0))
   10423              :     {
   10424            0 :     case FLOAT_EXPR:
   10425            0 :       {
   10426            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10427            0 :         switch (TREE_CODE (_p1))
   10428              :           {
   10429            0 :           case FLOAT_EXPR:
   10430            0 :             {
   10431            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10432            0 :               {
   10433            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   10434            0 :                 tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
   10435            0 :                 if (res) return res;
   10436              :               }
   10437            0 :               break;
   10438              :             }
   10439              :           default:;
   10440              :           }
   10441              :         break;
   10442              :       }
   10443            0 :     case NEGATE_EXPR:
   10444            0 :       {
   10445            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10446            0 :         switch (TREE_CODE (_p1))
   10447              :           {
   10448            0 :           case NEGATE_EXPR:
   10449            0 :             {
   10450            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10451            0 :               {
   10452            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10453            0 :                 tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
   10454            0 :                 if (res) return res;
   10455              :               }
   10456            0 :               break;
   10457              :             }
   10458            0 :           default:;
   10459              :           }
   10460            0 :       if (CONSTANT_CLASS_P (_p1))
   10461              :         {
   10462            0 :           {
   10463            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10464            0 :             tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
   10465            0 :             if (res) return res;
   10466              :           }
   10467              :         }
   10468              :         break;
   10469              :       }
   10470       193399 :     default:;
   10471              :     }
   10472       193399 :   switch (TREE_CODE (_p1))
   10473              :     {
   10474          102 :     case REAL_CST:
   10475          102 :       {
   10476          102 :         {
   10477          102 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10478          102 :           tree res = generic_simplify_561 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
   10479          102 :           if (res) return res;
   10480              :         }
   10481          102 :         break;
   10482              :       }
   10483       193399 :     default:;
   10484              :     }
   10485       193399 :   {
   10486       193399 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10487       193399 :     if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
   10488              : )
   10489              :       {
   10490            0 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1764;
   10491            0 :         {
   10492            0 :           tree _r;
   10493            0 :           _r =  constant_boolean_node (false, type);
   10494            0 :           if (TREE_SIDE_EFFECTS (captures[0]))
   10495            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   10496            0 :           if (TREE_SIDE_EFFECTS (captures[1]))
   10497            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10498            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1035, __FILE__, __LINE__, true);
   10499            0 :           return _r;
   10500              :         }
   10501            0 : next_after_fail1764:;
   10502              :       }
   10503              :     else
   10504              :       {
   10505       193399 :         if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
   10506              : )
   10507              :           {
   10508           10 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1765;
   10509           10 :             {
   10510           10 :               tree _r;
   10511           10 :               _r =  constant_boolean_node (true, type);
   10512           10 :               if (TREE_SIDE_EFFECTS (captures[0]))
   10513            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   10514           10 :               if (TREE_SIDE_EFFECTS (captures[1]))
   10515            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10516           10 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1036, __FILE__, __LINE__, true);
   10517           10 :               return _r;
   10518              :             }
   10519            0 : next_after_fail1765:;
   10520              :           }
   10521              :       }
   10522              :   }
   10523       193389 :   return NULL_TREE;
   10524              : }
   10525              : 
   10526              : tree
   10527      1259800 : generic_simplify_UNGT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10528              : {
   10529      1259800 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10530      1259800 :   switch (TREE_CODE (_p0))
   10531              :     {
   10532            0 :     case VEC_COND_EXPR:
   10533            0 :       {
   10534            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10535            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10536            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10537            0 :         switch (TREE_CODE (_p1))
   10538              :           {
   10539            0 :           case VEC_COND_EXPR:
   10540            0 :             {
   10541            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   10542            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   10543            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   10544            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10545              :                 {
   10546            0 :                   {
   10547            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   10548            0 :                     if (VECTOR_TYPE_P (type)
   10549            0 :  && (TREE_CODE_CLASS (UNGT_EXPR) != tcc_comparison
   10550            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10551            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10552              :  || (optimize_vectors_before_lowering_p ()
   10553            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10554              : )
   10555              :                       {
   10556            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1772;
   10557            0 :                         {
   10558            0 :                           tree res_op0;
   10559            0 :                           res_op0 = captures[1];
   10560            0 :                           tree res_op1;
   10561            0 :                           {
   10562            0 :                             tree _o1[2], _r1;
   10563            0 :                             _o1[0] = captures[2];
   10564            0 :                             _o1[1] = captures[5];
   10565            0 :                             _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   10566            0 :                             if (EXPR_P (_r1))
   10567            0 :                               goto next_after_fail1772;
   10568            0 :                             res_op1 = _r1;
   10569              :                           }
   10570            0 :                           tree res_op2;
   10571            0 :                           {
   10572            0 :                             tree _o1[2], _r1;
   10573            0 :                             _o1[0] = captures[3];
   10574            0 :                             _o1[1] = captures[6];
   10575            0 :                             _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   10576            0 :                             if (EXPR_P (_r1))
   10577            0 :                               goto next_after_fail1772;
   10578            0 :                             res_op2 = _r1;
   10579              :                           }
   10580            0 :                           tree _r;
   10581            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10582            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
   10583            0 :                           return _r;
   10584              :                         }
   10585            0 : next_after_fail1772:;
   10586              :                       }
   10587              :                   }
   10588              :                 }
   10589              :               break;
   10590              :             }
   10591            0 :           default:;
   10592              :           }
   10593            0 :         {
   10594            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10595            0 :           if (VECTOR_TYPE_P (type)
   10596            0 :  && (TREE_CODE_CLASS (UNGT_EXPR) != tcc_comparison
   10597            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10598            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10599              :  || (optimize_vectors_before_lowering_p ()
   10600            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10601              : )
   10602              :             {
   10603            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1773;
   10604            0 :               {
   10605            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1773;
   10606            0 :                 tree res_op0;
   10607            0 :                 res_op0 = captures[1];
   10608            0 :                 tree res_op1;
   10609            0 :                 {
   10610            0 :                   tree _o1[2], _r1;
   10611            0 :                   _o1[0] = captures[2];
   10612            0 :                   _o1[1] = unshare_expr (captures[4]);
   10613            0 :                   _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   10614            0 :                   if (EXPR_P (_r1))
   10615            0 :                     goto next_after_fail1773;
   10616            0 :                   res_op1 = _r1;
   10617              :                 }
   10618            0 :                 tree res_op2;
   10619            0 :                 {
   10620            0 :                   tree _o1[2], _r1;
   10621            0 :                   _o1[0] = captures[3];
   10622            0 :                   _o1[1] = captures[4];
   10623            0 :                   _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   10624            0 :                   if (EXPR_P (_r1))
   10625            0 :                     goto next_after_fail1773;
   10626            0 :                   res_op2 = _r1;
   10627              :                 }
   10628            0 :                 tree _r;
   10629            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10630            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
   10631            0 :                 return _r;
   10632              :               }
   10633            0 : next_after_fail1773:;
   10634              :             }
   10635              :         }
   10636            0 :         break;
   10637              :       }
   10638      1259800 :     default:;
   10639              :     }
   10640      1259800 :   switch (TREE_CODE (_p1))
   10641              :     {
   10642            0 :     case VEC_COND_EXPR:
   10643            0 :       {
   10644            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10645            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10646            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10647            0 :         {
   10648            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10649            0 :           if (VECTOR_TYPE_P (type)
   10650            0 :  && (TREE_CODE_CLASS (UNGT_EXPR) != tcc_comparison
   10651            0 :  || types_match (type, TREE_TYPE (captures[3]))
   10652            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10653              :  || (optimize_vectors_before_lowering_p ()
   10654            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10655              : )
   10656              :             {
   10657            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1774;
   10658            0 :               {
   10659            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1774;
   10660            0 :                 tree res_op0;
   10661            0 :                 res_op0 = captures[2];
   10662            0 :                 tree res_op1;
   10663            0 :                 {
   10664            0 :                   tree _o1[2], _r1;
   10665            0 :                   _o1[0] = unshare_expr (captures[0]);
   10666            0 :                   _o1[1] = captures[3];
   10667            0 :                   _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   10668            0 :                   if (EXPR_P (_r1))
   10669            0 :                     goto next_after_fail1774;
   10670            0 :                   res_op1 = _r1;
   10671              :                 }
   10672            0 :                 tree res_op2;
   10673            0 :                 {
   10674            0 :                   tree _o1[2], _r1;
   10675            0 :                   _o1[0] = captures[0];
   10676            0 :                   _o1[1] = captures[4];
   10677            0 :                   _r1 = fold_build2_loc (loc, UNGT_EXPR, type, _o1[0], _o1[1]);
   10678            0 :                   if (EXPR_P (_r1))
   10679            0 :                     goto next_after_fail1774;
   10680            0 :                   res_op2 = _r1;
   10681              :                 }
   10682            0 :                 tree _r;
   10683            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10684            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
   10685            0 :                 return _r;
   10686              :               }
   10687            0 : next_after_fail1774:;
   10688              :             }
   10689              :         }
   10690            0 :         break;
   10691              :       }
   10692      1259800 :     default:;
   10693              :     }
   10694      1259800 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10695              :     {
   10696            0 :       {
   10697            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10698            0 :         tree res = generic_simplify_562 (loc, type, _p0, _p1, captures, UNGT_EXPR);
   10699            0 :         if (res) return res;
   10700              :       }
   10701              :     }
   10702      1259800 :   switch (TREE_CODE (_p0))
   10703              :     {
   10704          339 :     case FLOAT_EXPR:
   10705          339 :       {
   10706          339 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10707          339 :         switch (TREE_CODE (_p1))
   10708              :           {
   10709            0 :           case FLOAT_EXPR:
   10710            0 :             {
   10711            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10712            0 :               {
   10713            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   10714            0 :                 tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, UNGT_EXPR, GT_EXPR);
   10715            0 :                 if (res) return res;
   10716              :               }
   10717            0 :               break;
   10718              :             }
   10719              :           default:;
   10720              :           }
   10721              :         break;
   10722              :       }
   10723            0 :     case NEGATE_EXPR:
   10724            0 :       {
   10725            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10726            0 :         switch (TREE_CODE (_p1))
   10727              :           {
   10728            0 :           case NEGATE_EXPR:
   10729            0 :             {
   10730            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10731            0 :               {
   10732            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10733            0 :                 tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNGT_EXPR, UNLT_EXPR);
   10734            0 :                 if (res) return res;
   10735              :               }
   10736            0 :               break;
   10737              :             }
   10738            0 :           default:;
   10739              :           }
   10740            0 :       if (CONSTANT_CLASS_P (_p1))
   10741              :         {
   10742            0 :           {
   10743            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10744            0 :             tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, UNGT_EXPR, UNLT_EXPR);
   10745            0 :             if (res) return res;
   10746              :           }
   10747              :         }
   10748              :         break;
   10749              :       }
   10750      1259800 :     default:;
   10751              :     }
   10752      1259800 :   switch (TREE_CODE (_p1))
   10753              :     {
   10754       907907 :     case REAL_CST:
   10755       907907 :       {
   10756       907907 :         {
   10757       907907 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10758       907907 :           tree res = generic_simplify_561 (loc, type, _p0, _p1, captures, UNGT_EXPR);
   10759       907907 :           if (res) return res;
   10760              :         }
   10761       907905 :         break;
   10762              :       }
   10763              :     default:;
   10764              :     }
   10765              :   return NULL_TREE;
   10766              : }
   10767              : 
   10768              : tree
   10769      9404551 : generic_simplify_TRUTH_OR_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10770              : {
   10771      9404551 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10772      9404551 :   switch (TREE_CODE (_p0))
   10773              :     {
   10774      1344603 :     case LE_EXPR:
   10775      1344603 :       {
   10776      1344603 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10777      1344603 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10778      1344603 :         switch (TREE_CODE (_q20))
   10779              :           {
   10780         3868 :           case POINTER_PLUS_EXPR:
   10781         3868 :             {
   10782         3868 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10783         3868 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10784         3868 :               switch (TREE_CODE (_q31))
   10785              :                 {
   10786         3636 :                 case INTEGER_CST:
   10787         3636 :                   {
   10788         3636 :                     switch (TREE_CODE (_p1))
   10789              :                       {
   10790         1086 :                       case LE_EXPR:
   10791         1086 :                         {
   10792         1086 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   10793         1086 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   10794         1086 :                           switch (TREE_CODE (_q70))
   10795              :                             {
   10796          800 :                             case POINTER_PLUS_EXPR:
   10797          800 :                               {
   10798          800 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   10799          800 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   10800          800 :                                 if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
   10801              :                                   {
   10802          514 :                                     if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
   10803              :                                       {
   10804          395 :                                         if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10805              :                                           {
   10806          395 :                                             {
   10807          395 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
   10808          395 :                                               const enum tree_code cmp = LE_EXPR;
   10809          395 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   10810          394 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   10811          789 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   10812              : )
   10813              :                                                 {
   10814          394 :                                                   {
   10815          394 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   10816          394 :  offset_int rhs = off * 2;
   10817          394 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   10818              : )
   10819              :                                                         {
   10820          394 :                                                           {
   10821          394 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   10822          394 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   10823          394 :                                                               if (cmp == LT_EXPR
   10824              : )
   10825              :                                                                 {
   10826              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1801;
   10827              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1801;
   10828              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1801;
   10829              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1801;
   10830              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1801;
   10831              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1801;
   10832              :                                                                   {
   10833              :                                                                     tree res_op0;
   10834              :                                                                     {
   10835              :                                                                       tree _o1[1], _r1;
   10836              :                                                                       {
   10837              :                                                                         tree _o2[2], _r2;
   10838              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   10839              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10840              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10841              :                                                                         _o1[0] = _r2;
   10842              :                                                                       }
   10843              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10844              :                                                                         {
   10845              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10846              :                                                                         }
   10847              :                                                                       else
   10848              :                                                                         _r1 = _o1[0];
   10849              :                                                                       res_op0 = _r1;
   10850              :                                                                     }
   10851              :                                                                     tree res_op1;
   10852              :                                                                     res_op1 =  rhs_tree;
   10853              :                                                                     tree _r;
   10854              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10855              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 943, __FILE__, __LINE__, true);
   10856          394 :                                                                     return _r;
   10857              :                                                                   }
   10858              : next_after_fail1801:;
   10859              :                                                                 }
   10860              :                                                               else
   10861              :                                                                 {
   10862          394 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1802;
   10863          394 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1802;
   10864          394 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1802;
   10865          394 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1802;
   10866          394 :                                                                   {
   10867          394 :                                                                     tree res_op0;
   10868          394 :                                                                     {
   10869          394 :                                                                       tree _o1[1], _r1;
   10870          394 :                                                                       {
   10871          394 :                                                                         tree _o2[2], _r2;
   10872          394 :                                                                         {
   10873          394 :                                                                           tree _o3[2], _r3;
   10874          394 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   10875          394 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   10876          394 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   10877          394 :                                                                           _o2[0] = _r3;
   10878              :                                                                         }
   10879          394 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10880          394 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10881          394 :                                                                         _o1[0] = _r2;
   10882              :                                                                       }
   10883          394 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10884              :                                                                         {
   10885          394 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10886              :                                                                         }
   10887              :                                                                       else
   10888              :                                                                         _r1 = _o1[0];
   10889          394 :                                                                       res_op0 = _r1;
   10890              :                                                                     }
   10891          394 :                                                                     tree res_op1;
   10892          394 :                                                                     res_op1 =  rhs_tree;
   10893          394 :                                                                     tree _r;
   10894          394 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10895          394 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
   10896          394 :                                                                     return _r;
   10897              :                                                                   }
   10898            0 : next_after_fail1802:;
   10899              :                                                                 }
   10900              :                                                           }
   10901              :                                                         }
   10902              :                                                   }
   10903              :                                                 }
   10904              :                                             }
   10905              :                                           }
   10906              :                                       }
   10907              :                                   }
   10908              :                                 break;
   10909              :                               }
   10910              :                             default:;
   10911              :                             }
   10912              :                           break;
   10913              :                         }
   10914          117 :                       case GE_EXPR:
   10915          117 :                         {
   10916          117 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   10917          117 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   10918          117 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   10919              :                             {
   10920           18 :                               switch (TREE_CODE (_q71))
   10921              :                                 {
   10922           18 :                                 case POINTER_PLUS_EXPR:
   10923           18 :                                   {
   10924           18 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   10925           18 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   10926           18 :                                     if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
   10927              :                                       {
   10928           16 :                                         if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
   10929              :                                           {
   10930           11 :                                             {
   10931           11 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
   10932           11 :                                               const enum tree_code cmp = LE_EXPR;
   10933           11 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   10934           11 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   10935           22 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   10936              : )
   10937              :                                                 {
   10938           11 :                                                   {
   10939           11 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   10940           11 :  offset_int rhs = off * 2;
   10941           11 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   10942              : )
   10943              :                                                         {
   10944           11 :                                                           {
   10945           11 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   10946           11 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   10947           11 :                                                               if (cmp == LT_EXPR
   10948              : )
   10949              :                                                                 {
   10950              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1803;
   10951              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1803;
   10952              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1803;
   10953              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1803;
   10954              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1803;
   10955              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1803;
   10956              :                                                                   {
   10957              :                                                                     tree res_op0;
   10958              :                                                                     {
   10959              :                                                                       tree _o1[1], _r1;
   10960              :                                                                       {
   10961              :                                                                         tree _o2[2], _r2;
   10962              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   10963              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10964              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10965              :                                                                         _o1[0] = _r2;
   10966              :                                                                       }
   10967              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10968              :                                                                         {
   10969              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10970              :                                                                         }
   10971              :                                                                       else
   10972              :                                                                         _r1 = _o1[0];
   10973              :                                                                       res_op0 = _r1;
   10974              :                                                                     }
   10975              :                                                                     tree res_op1;
   10976              :                                                                     res_op1 =  rhs_tree;
   10977              :                                                                     tree _r;
   10978              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10979              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 943, __FILE__, __LINE__, true);
   10980           11 :                                                                     return _r;
   10981              :                                                                   }
   10982              : next_after_fail1803:;
   10983              :                                                                 }
   10984              :                                                               else
   10985              :                                                                 {
   10986           11 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1804;
   10987           11 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1804;
   10988           11 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1804;
   10989           11 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1804;
   10990           11 :                                                                   {
   10991           11 :                                                                     tree res_op0;
   10992           11 :                                                                     {
   10993           11 :                                                                       tree _o1[1], _r1;
   10994           11 :                                                                       {
   10995           11 :                                                                         tree _o2[2], _r2;
   10996           11 :                                                                         {
   10997           11 :                                                                           tree _o3[2], _r3;
   10998           11 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   10999           11 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11000           11 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11001           11 :                                                                           _o2[0] = _r3;
   11002              :                                                                         }
   11003           11 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11004           11 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11005           11 :                                                                         _o1[0] = _r2;
   11006              :                                                                       }
   11007           11 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11008              :                                                                         {
   11009           11 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11010              :                                                                         }
   11011              :                                                                       else
   11012              :                                                                         _r1 = _o1[0];
   11013           11 :                                                                       res_op0 = _r1;
   11014              :                                                                     }
   11015           11 :                                                                     tree res_op1;
   11016           11 :                                                                     res_op1 =  rhs_tree;
   11017           11 :                                                                     tree _r;
   11018           11 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11019           11 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
   11020           11 :                                                                     return _r;
   11021              :                                                                   }
   11022            0 : next_after_fail1804:;
   11023              :                                                                 }
   11024              :                                                           }
   11025              :                                                         }
   11026              :                                                   }
   11027              :                                                 }
   11028              :                                             }
   11029              :                                           }
   11030              :                                       }
   11031              :                                     break;
   11032              :                                   }
   11033              :                                 default:;
   11034              :                                 }
   11035              :                             }
   11036              :                           break;
   11037              :                         }
   11038              :                       default:;
   11039              :                       }
   11040              :                     break;
   11041              :                   }
   11042              :                 default:;
   11043              :                 }
   11044              :               break;
   11045              :             }
   11046              :           default:;
   11047              :           }
   11048              :         break;
   11049              :       }
   11050      1056780 :     case LT_EXPR:
   11051      1056780 :       {
   11052      1056780 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11053      1056780 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11054      1056780 :         switch (TREE_CODE (_q20))
   11055              :           {
   11056         2421 :           case POINTER_PLUS_EXPR:
   11057         2421 :             {
   11058         2421 :               tree _q30 = TREE_OPERAND (_q20, 0);
   11059         2421 :               tree _q31 = TREE_OPERAND (_q20, 1);
   11060         2421 :               switch (TREE_CODE (_q31))
   11061              :                 {
   11062         2235 :                 case INTEGER_CST:
   11063         2235 :                   {
   11064         2235 :                     switch (TREE_CODE (_p1))
   11065              :                       {
   11066          158 :                       case LT_EXPR:
   11067          158 :                         {
   11068          158 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11069          158 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11070          158 :                           switch (TREE_CODE (_q70))
   11071              :                             {
   11072           10 :                             case POINTER_PLUS_EXPR:
   11073           10 :                               {
   11074           10 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   11075           10 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   11076           10 :                                 if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
   11077              :                                   {
   11078            1 :                                     if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
   11079              :                                       {
   11080            1 :                                         if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   11081              :                                           {
   11082            1 :                                             {
   11083            1 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
   11084            1 :                                               const enum tree_code cmp = LT_EXPR;
   11085            1 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11086            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11087            1 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11088              : )
   11089              :                                                 {
   11090            0 :                                                   {
   11091            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11092            0 :  offset_int rhs = off * 2;
   11093            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11094              : )
   11095              :                                                         {
   11096            0 :                                                           {
   11097            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11098            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11099            0 :                                                               if (cmp == LT_EXPR
   11100              : )
   11101              :                                                                 {
   11102            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1805;
   11103            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1805;
   11104            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1805;
   11105            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1805;
   11106            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1805;
   11107            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1805;
   11108            0 :                                                                   {
   11109            0 :                                                                     tree res_op0;
   11110            0 :                                                                     {
   11111            0 :                                                                       tree _o1[1], _r1;
   11112            0 :                                                                       {
   11113            0 :                                                                         tree _o2[2], _r2;
   11114            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11115            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11116            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11117            0 :                                                                         _o1[0] = _r2;
   11118              :                                                                       }
   11119            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11120              :                                                                         {
   11121            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11122              :                                                                         }
   11123              :                                                                       else
   11124              :                                                                         _r1 = _o1[0];
   11125            0 :                                                                       res_op0 = _r1;
   11126              :                                                                     }
   11127            0 :                                                                     tree res_op1;
   11128            0 :                                                                     res_op1 =  rhs_tree;
   11129            0 :                                                                     tree _r;
   11130            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11131            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 943, __FILE__, __LINE__, true);
   11132            0 :                                                                     return _r;
   11133              :                                                                   }
   11134            0 : next_after_fail1805:;
   11135              :                                                                 }
   11136              :                                                               else
   11137              :                                                                 {
   11138              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1806;
   11139              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1806;
   11140              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1806;
   11141              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1806;
   11142              :                                                                   {
   11143              :                                                                     tree res_op0;
   11144              :                                                                     {
   11145              :                                                                       tree _o1[1], _r1;
   11146              :                                                                       {
   11147              :                                                                         tree _o2[2], _r2;
   11148              :                                                                         {
   11149              :                                                                           tree _o3[2], _r3;
   11150              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11151              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11152              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11153              :                                                                           _o2[0] = _r3;
   11154              :                                                                         }
   11155              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11156              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11157              :                                                                         _o1[0] = _r2;
   11158              :                                                                       }
   11159              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11160              :                                                                         {
   11161              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11162              :                                                                         }
   11163              :                                                                       else
   11164              :                                                                         _r1 = _o1[0];
   11165              :                                                                       res_op0 = _r1;
   11166              :                                                                     }
   11167              :                                                                     tree res_op1;
   11168              :                                                                     res_op1 =  rhs_tree;
   11169              :                                                                     tree _r;
   11170              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11171              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
   11172              :                                                                     return _r;
   11173              :                                                                   }
   11174              : next_after_fail1806:;
   11175              :                                                                 }
   11176              :                                                           }
   11177              :                                                         }
   11178              :                                                   }
   11179              :                                                 }
   11180              :                                             }
   11181              :                                           }
   11182              :                                       }
   11183              :                                   }
   11184              :                                 break;
   11185              :                               }
   11186              :                             default:;
   11187              :                             }
   11188              :                           break;
   11189              :                         }
   11190          778 :                       case GT_EXPR:
   11191          778 :                         {
   11192          778 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11193          778 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11194          778 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   11195              :                             {
   11196            0 :                               switch (TREE_CODE (_q71))
   11197              :                                 {
   11198            0 :                                 case POINTER_PLUS_EXPR:
   11199            0 :                                   {
   11200            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   11201            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   11202            0 :                                     if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
   11203              :                                       {
   11204            0 :                                         if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
   11205              :                                           {
   11206            0 :                                             {
   11207            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
   11208            0 :                                               const enum tree_code cmp = LT_EXPR;
   11209            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11210            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11211            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11212              : )
   11213              :                                                 {
   11214            0 :                                                   {
   11215            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11216            0 :  offset_int rhs = off * 2;
   11217            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11218              : )
   11219              :                                                         {
   11220            0 :                                                           {
   11221            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11222            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11223            0 :                                                               if (cmp == LT_EXPR
   11224              : )
   11225              :                                                                 {
   11226            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1807;
   11227            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1807;
   11228            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1807;
   11229            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1807;
   11230            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1807;
   11231            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1807;
   11232            0 :                                                                   {
   11233            0 :                                                                     tree res_op0;
   11234            0 :                                                                     {
   11235            0 :                                                                       tree _o1[1], _r1;
   11236            0 :                                                                       {
   11237            0 :                                                                         tree _o2[2], _r2;
   11238            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11239            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11240            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11241            0 :                                                                         _o1[0] = _r2;
   11242              :                                                                       }
   11243            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11244              :                                                                         {
   11245            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11246              :                                                                         }
   11247              :                                                                       else
   11248              :                                                                         _r1 = _o1[0];
   11249            0 :                                                                       res_op0 = _r1;
   11250              :                                                                     }
   11251            0 :                                                                     tree res_op1;
   11252            0 :                                                                     res_op1 =  rhs_tree;
   11253            0 :                                                                     tree _r;
   11254            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11255            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 943, __FILE__, __LINE__, true);
   11256            0 :                                                                     return _r;
   11257              :                                                                   }
   11258            0 : next_after_fail1807:;
   11259              :                                                                 }
   11260              :                                                               else
   11261              :                                                                 {
   11262              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1808;
   11263              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1808;
   11264              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1808;
   11265              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1808;
   11266              :                                                                   {
   11267              :                                                                     tree res_op0;
   11268              :                                                                     {
   11269              :                                                                       tree _o1[1], _r1;
   11270              :                                                                       {
   11271              :                                                                         tree _o2[2], _r2;
   11272              :                                                                         {
   11273              :                                                                           tree _o3[2], _r3;
   11274              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11275              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11276              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11277              :                                                                           _o2[0] = _r3;
   11278              :                                                                         }
   11279              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11280              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11281              :                                                                         _o1[0] = _r2;
   11282              :                                                                       }
   11283              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11284              :                                                                         {
   11285              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11286              :                                                                         }
   11287              :                                                                       else
   11288              :                                                                         _r1 = _o1[0];
   11289              :                                                                       res_op0 = _r1;
   11290              :                                                                     }
   11291              :                                                                     tree res_op1;
   11292              :                                                                     res_op1 =  rhs_tree;
   11293              :                                                                     tree _r;
   11294              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11295              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
   11296              :                                                                     return _r;
   11297              :                                                                   }
   11298              : next_after_fail1808:;
   11299              :                                                                 }
   11300              :                                                           }
   11301              :                                                         }
   11302              :                                                   }
   11303              :                                                 }
   11304              :                                             }
   11305              :                                           }
   11306              :                                       }
   11307              :                                     break;
   11308              :                                   }
   11309              :                                 default:;
   11310              :                                 }
   11311              :                             }
   11312              :                           break;
   11313              :                         }
   11314              :                       default:;
   11315              :                       }
   11316              :                     break;
   11317              :                   }
   11318              :                 default:;
   11319              :                 }
   11320              :               break;
   11321              :             }
   11322              :           default:;
   11323              :           }
   11324              :         break;
   11325              :       }
   11326       797378 :     case GE_EXPR:
   11327       797378 :       {
   11328       797378 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11329       797378 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11330       797378 :         switch (TREE_CODE (_q21))
   11331              :           {
   11332           53 :           case POINTER_PLUS_EXPR:
   11333           53 :             {
   11334           53 :               tree _q40 = TREE_OPERAND (_q21, 0);
   11335           53 :               tree _q41 = TREE_OPERAND (_q21, 1);
   11336           53 :               switch (TREE_CODE (_q41))
   11337              :                 {
   11338           53 :                 case INTEGER_CST:
   11339           53 :                   {
   11340           53 :                     switch (TREE_CODE (_p1))
   11341              :                       {
   11342           52 :                       case LE_EXPR:
   11343           52 :                         {
   11344           52 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11345           52 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11346           52 :                           switch (TREE_CODE (_q70))
   11347              :                             {
   11348           42 :                             case POINTER_PLUS_EXPR:
   11349           42 :                               {
   11350           42 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   11351           42 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   11352           42 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   11353              :                                   {
   11354           27 :                                     if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
   11355              :                                       {
   11356            3 :                                         if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
   11357              :                                           {
   11358            3 :                                             {
   11359            3 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
   11360            3 :                                               const enum tree_code cmp = LE_EXPR;
   11361            3 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11362            3 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11363            6 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11364              : )
   11365              :                                                 {
   11366            3 :                                                   {
   11367            3 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11368            3 :  offset_int rhs = off * 2;
   11369            3 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11370              : )
   11371              :                                                         {
   11372            3 :                                                           {
   11373            3 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11374            3 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11375            3 :                                                               if (cmp == LT_EXPR
   11376              : )
   11377              :                                                                 {
   11378              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1809;
   11379              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1809;
   11380              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1809;
   11381              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1809;
   11382              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1809;
   11383              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1809;
   11384              :                                                                   {
   11385              :                                                                     tree res_op0;
   11386              :                                                                     {
   11387              :                                                                       tree _o1[1], _r1;
   11388              :                                                                       {
   11389              :                                                                         tree _o2[2], _r2;
   11390              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11391              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11392              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11393              :                                                                         _o1[0] = _r2;
   11394              :                                                                       }
   11395              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11396              :                                                                         {
   11397              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11398              :                                                                         }
   11399              :                                                                       else
   11400              :                                                                         _r1 = _o1[0];
   11401              :                                                                       res_op0 = _r1;
   11402              :                                                                     }
   11403              :                                                                     tree res_op1;
   11404              :                                                                     res_op1 =  rhs_tree;
   11405              :                                                                     tree _r;
   11406              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11407              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 943, __FILE__, __LINE__, true);
   11408            3 :                                                                     return _r;
   11409              :                                                                   }
   11410              : next_after_fail1809:;
   11411              :                                                                 }
   11412              :                                                               else
   11413              :                                                                 {
   11414            3 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1810;
   11415            3 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1810;
   11416            3 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1810;
   11417            3 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1810;
   11418            3 :                                                                   {
   11419            3 :                                                                     tree res_op0;
   11420            3 :                                                                     {
   11421            3 :                                                                       tree _o1[1], _r1;
   11422            3 :                                                                       {
   11423            3 :                                                                         tree _o2[2], _r2;
   11424            3 :                                                                         {
   11425            3 :                                                                           tree _o3[2], _r3;
   11426            3 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11427            3 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11428            3 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11429            3 :                                                                           _o2[0] = _r3;
   11430              :                                                                         }
   11431            3 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11432            3 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11433            3 :                                                                         _o1[0] = _r2;
   11434              :                                                                       }
   11435            3 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11436              :                                                                         {
   11437            3 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11438              :                                                                         }
   11439              :                                                                       else
   11440              :                                                                         _r1 = _o1[0];
   11441            3 :                                                                       res_op0 = _r1;
   11442              :                                                                     }
   11443            3 :                                                                     tree res_op1;
   11444            3 :                                                                     res_op1 =  rhs_tree;
   11445            3 :                                                                     tree _r;
   11446            3 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11447            3 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
   11448            3 :                                                                     return _r;
   11449              :                                                                   }
   11450            0 : next_after_fail1810:;
   11451              :                                                                 }
   11452              :                                                           }
   11453              :                                                         }
   11454              :                                                   }
   11455              :                                                 }
   11456              :                                             }
   11457              :                                           }
   11458              :                                       }
   11459              :                                   }
   11460              :                                 break;
   11461              :                               }
   11462              :                             default:;
   11463              :                             }
   11464              :                           break;
   11465              :                         }
   11466            0 :                       case GE_EXPR:
   11467            0 :                         {
   11468            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11469            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11470            0 :                           if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
   11471              :                             {
   11472            0 :                               switch (TREE_CODE (_q71))
   11473              :                                 {
   11474            0 :                                 case POINTER_PLUS_EXPR:
   11475            0 :                                   {
   11476            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   11477            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   11478            0 :                                     if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
   11479              :                                       {
   11480            0 :                                         if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
   11481              :                                           {
   11482            0 :                                             {
   11483            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
   11484            0 :                                               const enum tree_code cmp = LE_EXPR;
   11485            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11486            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11487            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11488              : )
   11489              :                                                 {
   11490            0 :                                                   {
   11491            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11492            0 :  offset_int rhs = off * 2;
   11493            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11494              : )
   11495              :                                                         {
   11496            0 :                                                           {
   11497            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11498            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11499            0 :                                                               if (cmp == LT_EXPR
   11500              : )
   11501              :                                                                 {
   11502              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1811;
   11503              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1811;
   11504              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1811;
   11505              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1811;
   11506              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1811;
   11507              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1811;
   11508              :                                                                   {
   11509              :                                                                     tree res_op0;
   11510              :                                                                     {
   11511              :                                                                       tree _o1[1], _r1;
   11512              :                                                                       {
   11513              :                                                                         tree _o2[2], _r2;
   11514              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11515              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11516              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11517              :                                                                         _o1[0] = _r2;
   11518              :                                                                       }
   11519              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11520              :                                                                         {
   11521              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11522              :                                                                         }
   11523              :                                                                       else
   11524              :                                                                         _r1 = _o1[0];
   11525              :                                                                       res_op0 = _r1;
   11526              :                                                                     }
   11527              :                                                                     tree res_op1;
   11528              :                                                                     res_op1 =  rhs_tree;
   11529              :                                                                     tree _r;
   11530              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11531              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 943, __FILE__, __LINE__, true);
   11532            0 :                                                                     return _r;
   11533              :                                                                   }
   11534              : next_after_fail1811:;
   11535              :                                                                 }
   11536              :                                                               else
   11537              :                                                                 {
   11538            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1812;
   11539            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1812;
   11540            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1812;
   11541            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1812;
   11542            0 :                                                                   {
   11543            0 :                                                                     tree res_op0;
   11544            0 :                                                                     {
   11545            0 :                                                                       tree _o1[1], _r1;
   11546            0 :                                                                       {
   11547            0 :                                                                         tree _o2[2], _r2;
   11548            0 :                                                                         {
   11549            0 :                                                                           tree _o3[2], _r3;
   11550            0 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11551            0 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11552            0 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11553            0 :                                                                           _o2[0] = _r3;
   11554              :                                                                         }
   11555            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11556            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11557            0 :                                                                         _o1[0] = _r2;
   11558              :                                                                       }
   11559            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11560              :                                                                         {
   11561            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11562              :                                                                         }
   11563              :                                                                       else
   11564              :                                                                         _r1 = _o1[0];
   11565            0 :                                                                       res_op0 = _r1;
   11566              :                                                                     }
   11567            0 :                                                                     tree res_op1;
   11568            0 :                                                                     res_op1 =  rhs_tree;
   11569            0 :                                                                     tree _r;
   11570            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11571            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
   11572            0 :                                                                     return _r;
   11573              :                                                                   }
   11574            0 : next_after_fail1812:;
   11575              :                                                                 }
   11576              :                                                           }
   11577              :                                                         }
   11578              :                                                   }
   11579              :                                                 }
   11580              :                                             }
   11581              :                                           }
   11582              :                                       }
   11583              :                                     break;
   11584              :                                   }
   11585              :                                 default:;
   11586              :                                 }
   11587              :                             }
   11588              :                           break;
   11589              :                         }
   11590              :                       default:;
   11591              :                       }
   11592              :                     break;
   11593              :                   }
   11594              :                 default:;
   11595              :                 }
   11596              :               break;
   11597              :             }
   11598              :           default:;
   11599              :           }
   11600              :         break;
   11601              :       }
   11602      1190357 :     case GT_EXPR:
   11603      1190357 :       {
   11604      1190357 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11605      1190357 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11606      1190357 :         switch (TREE_CODE (_q21))
   11607              :           {
   11608           46 :           case POINTER_PLUS_EXPR:
   11609           46 :             {
   11610           46 :               tree _q40 = TREE_OPERAND (_q21, 0);
   11611           46 :               tree _q41 = TREE_OPERAND (_q21, 1);
   11612           46 :               switch (TREE_CODE (_q41))
   11613              :                 {
   11614           46 :                 case INTEGER_CST:
   11615           46 :                   {
   11616           46 :                     switch (TREE_CODE (_p1))
   11617              :                       {
   11618            0 :                       case LT_EXPR:
   11619            0 :                         {
   11620            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11621            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11622            0 :                           switch (TREE_CODE (_q70))
   11623              :                             {
   11624            0 :                             case POINTER_PLUS_EXPR:
   11625            0 :                               {
   11626            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   11627            0 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   11628            0 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   11629              :                                   {
   11630            0 :                                     if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
   11631              :                                       {
   11632            0 :                                         if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
   11633              :                                           {
   11634            0 :                                             {
   11635            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
   11636            0 :                                               const enum tree_code cmp = LT_EXPR;
   11637            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11638            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11639            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11640              : )
   11641              :                                                 {
   11642            0 :                                                   {
   11643            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11644            0 :  offset_int rhs = off * 2;
   11645            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11646              : )
   11647              :                                                         {
   11648            0 :                                                           {
   11649            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11650            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11651            0 :                                                               if (cmp == LT_EXPR
   11652              : )
   11653              :                                                                 {
   11654            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1813;
   11655            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1813;
   11656            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1813;
   11657            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1813;
   11658            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1813;
   11659            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1813;
   11660            0 :                                                                   {
   11661            0 :                                                                     tree res_op0;
   11662            0 :                                                                     {
   11663            0 :                                                                       tree _o1[1], _r1;
   11664            0 :                                                                       {
   11665            0 :                                                                         tree _o2[2], _r2;
   11666            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11667            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11668            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11669            0 :                                                                         _o1[0] = _r2;
   11670              :                                                                       }
   11671            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11672              :                                                                         {
   11673            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11674              :                                                                         }
   11675              :                                                                       else
   11676              :                                                                         _r1 = _o1[0];
   11677            0 :                                                                       res_op0 = _r1;
   11678              :                                                                     }
   11679            0 :                                                                     tree res_op1;
   11680            0 :                                                                     res_op1 =  rhs_tree;
   11681            0 :                                                                     tree _r;
   11682            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11683            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 943, __FILE__, __LINE__, true);
   11684            0 :                                                                     return _r;
   11685              :                                                                   }
   11686            0 : next_after_fail1813:;
   11687              :                                                                 }
   11688              :                                                               else
   11689              :                                                                 {
   11690              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1814;
   11691              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1814;
   11692              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1814;
   11693              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1814;
   11694              :                                                                   {
   11695              :                                                                     tree res_op0;
   11696              :                                                                     {
   11697              :                                                                       tree _o1[1], _r1;
   11698              :                                                                       {
   11699              :                                                                         tree _o2[2], _r2;
   11700              :                                                                         {
   11701              :                                                                           tree _o3[2], _r3;
   11702              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11703              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11704              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11705              :                                                                           _o2[0] = _r3;
   11706              :                                                                         }
   11707              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11708              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11709              :                                                                         _o1[0] = _r2;
   11710              :                                                                       }
   11711              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11712              :                                                                         {
   11713              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11714              :                                                                         }
   11715              :                                                                       else
   11716              :                                                                         _r1 = _o1[0];
   11717              :                                                                       res_op0 = _r1;
   11718              :                                                                     }
   11719              :                                                                     tree res_op1;
   11720              :                                                                     res_op1 =  rhs_tree;
   11721              :                                                                     tree _r;
   11722              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11723              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
   11724              :                                                                     return _r;
   11725              :                                                                   }
   11726              : next_after_fail1814:;
   11727              :                                                                 }
   11728              :                                                           }
   11729              :                                                         }
   11730              :                                                   }
   11731              :                                                 }
   11732              :                                             }
   11733              :                                           }
   11734              :                                       }
   11735              :                                   }
   11736              :                                 break;
   11737              :                               }
   11738              :                             default:;
   11739              :                             }
   11740              :                           break;
   11741              :                         }
   11742           18 :                       case GT_EXPR:
   11743           18 :                         {
   11744           18 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11745           18 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11746           18 :                           if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
   11747              :                             {
   11748            0 :                               switch (TREE_CODE (_q71))
   11749              :                                 {
   11750            0 :                                 case POINTER_PLUS_EXPR:
   11751            0 :                                   {
   11752            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   11753            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   11754            0 :                                     if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
   11755              :                                       {
   11756            0 :                                         if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
   11757              :                                           {
   11758            0 :                                             {
   11759            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
   11760            0 :                                               const enum tree_code cmp = LT_EXPR;
   11761            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11762            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11763            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11764              : )
   11765              :                                                 {
   11766            0 :                                                   {
   11767            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11768            0 :  offset_int rhs = off * 2;
   11769            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11770              : )
   11771              :                                                         {
   11772            0 :                                                           {
   11773            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11774            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11775            0 :                                                               if (cmp == LT_EXPR
   11776              : )
   11777              :                                                                 {
   11778            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1815;
   11779            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1815;
   11780            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1815;
   11781            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1815;
   11782            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1815;
   11783            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1815;
   11784            0 :                                                                   {
   11785            0 :                                                                     tree res_op0;
   11786            0 :                                                                     {
   11787            0 :                                                                       tree _o1[1], _r1;
   11788            0 :                                                                       {
   11789            0 :                                                                         tree _o2[2], _r2;
   11790            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11791            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11792            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11793            0 :                                                                         _o1[0] = _r2;
   11794              :                                                                       }
   11795            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11796              :                                                                         {
   11797            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11798              :                                                                         }
   11799              :                                                                       else
   11800              :                                                                         _r1 = _o1[0];
   11801            0 :                                                                       res_op0 = _r1;
   11802              :                                                                     }
   11803            0 :                                                                     tree res_op1;
   11804            0 :                                                                     res_op1 =  rhs_tree;
   11805            0 :                                                                     tree _r;
   11806            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11807            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 943, __FILE__, __LINE__, true);
   11808            0 :                                                                     return _r;
   11809              :                                                                   }
   11810            0 : next_after_fail1815:;
   11811              :                                                                 }
   11812              :                                                               else
   11813              :                                                                 {
   11814              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1816;
   11815              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1816;
   11816              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1816;
   11817              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1816;
   11818              :                                                                   {
   11819              :                                                                     tree res_op0;
   11820              :                                                                     {
   11821              :                                                                       tree _o1[1], _r1;
   11822              :                                                                       {
   11823              :                                                                         tree _o2[2], _r2;
   11824              :                                                                         {
   11825              :                                                                           tree _o3[2], _r3;
   11826              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11827              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11828              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11829              :                                                                           _o2[0] = _r3;
   11830              :                                                                         }
   11831              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11832              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11833              :                                                                         _o1[0] = _r2;
   11834              :                                                                       }
   11835              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11836              :                                                                         {
   11837              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11838              :                                                                         }
   11839              :                                                                       else
   11840              :                                                                         _r1 = _o1[0];
   11841              :                                                                       res_op0 = _r1;
   11842              :                                                                     }
   11843              :                                                                     tree res_op1;
   11844              :                                                                     res_op1 =  rhs_tree;
   11845              :                                                                     tree _r;
   11846              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11847              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 944, __FILE__, __LINE__, true);
   11848              :                                                                     return _r;
   11849              :                                                                   }
   11850              : next_after_fail1816:;
   11851              :                                                                 }
   11852              :                                                           }
   11853              :                                                         }
   11854              :                                                   }
   11855              :                                                 }
   11856              :                                             }
   11857              :                                           }
   11858              :                                       }
   11859              :                                     break;
   11860              :                                   }
   11861              :                                 default:;
   11862              :                                 }
   11863              :                             }
   11864              :                           break;
   11865              :                         }
   11866              :                       default:;
   11867              :                       }
   11868              :                     break;
   11869              :                   }
   11870              :                 default:;
   11871              :                 }
   11872              :               break;
   11873              :             }
   11874              :           default:;
   11875              :           }
   11876              :         break;
   11877              :       }
   11878              :     default:;
   11879              :     }
   11880              :   return NULL_TREE;
   11881              : }
   11882              : #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.