LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-2.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 35.5 % 7241 2571
Test Date: 2026-07-11 15:47:05 Functions: 65.5 % 58 38
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    107679858 : tree_logical_inverted_value (tree t, tree *res_ops)
      11              : {
      12    107679858 :   const tree type = TREE_TYPE (t);
      13    107679858 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    107679858 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15     98677794 :   switch (TREE_CODE (t))
      16              :     {
      17       533199 :     case TRUTH_NOT_EXPR:
      18       533199 :       {
      19       533199 :         tree _p0 = TREE_OPERAND (t, 0);
      20       533199 :         {
      21       533199 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      22       533199 :           {
      23       533199 :             res_ops[0] = captures[0];
      24       533199 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 23, __FILE__, __LINE__, false);
      25              :             return true;
      26              :           }
      27              :         }
      28       160571 :         break;
      29              :       }
      30       160571 :     case BIT_NOT_EXPR:
      31       160571 :       {
      32       160571 :         tree _p0 = TREE_OPERAND (t, 0);
      33       160571 :         if (tree_truth_valued_p (_p0))
      34              :           {
      35        12206 :             {
      36        12206 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      37        12206 :               {
      38        12206 :                 res_ops[0] = captures[0];
      39        12206 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 24, __FILE__, __LINE__, false);
      40        12206 :                 return true;
      41              :               }
      42              :             }
      43              :           }
      44              :         break;
      45              :       }
      46      1401298 :     case EQ_EXPR:
      47      1401298 :       {
      48      1401298 :         tree _p0 = TREE_OPERAND (t, 0);
      49      1401298 :         tree _p1 = TREE_OPERAND (t, 1);
      50      1401298 :         if (integer_zerop (_p1))
      51              :           {
      52       553458 :             {
      53       553458 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      54       553458 :               {
      55       553458 :                 res_ops[0] = captures[0];
      56       553458 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 25, __FILE__, __LINE__, false);
      57       553458 :                 return true;
      58              :               }
      59              :             }
      60              :           }
      61              :         break;
      62              :       }
      63      2156134 :     case NE_EXPR:
      64      2156134 :       {
      65      2156134 :         tree _p0 = TREE_OPERAND (t, 0);
      66      2156134 :         tree _p1 = TREE_OPERAND (t, 1);
      67      2156134 :         if (tree_truth_valued_p (_p0))
      68              :           {
      69         2706 :             if (integer_truep (_p1))
      70              :               {
      71            0 :                 {
      72            0 :                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      73            0 :                   {
      74            0 :                     res_ops[0] = captures[0];
      75            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 26, __FILE__, __LINE__, false);
      76            0 :                     return true;
      77              :                   }
      78              :                 }
      79              :               }
      80              :           }
      81              :         break;
      82              :       }
      83       110111 :     case BIT_XOR_EXPR:
      84       110111 :       {
      85       110111 :         tree _p0 = TREE_OPERAND (t, 0);
      86       110111 :         tree _p1 = TREE_OPERAND (t, 1);
      87       110111 :         if (tree_truth_valued_p (_p0))
      88              :           {
      89        15766 :             if (integer_truep (_p1))
      90              :               {
      91            0 :                 {
      92            0 :                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      93            0 :                   {
      94            0 :                     res_ops[0] = captures[0];
      95            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 27, __FILE__, __LINE__, false);
      96            0 :                     return true;
      97              :                   }
      98              :                 }
      99              :               }
     100              :           }
     101              :         break;
     102              :       }
     103              :     default:;
     104              :     }
     105              :   return false;
     106              : }
     107              : 
     108              : tree
     109            3 : generic_simplify_3 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     110              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     111              :  const enum tree_code ARG_UNUSED (op))
     112              : {
     113            3 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     114            3 :   if (INTEGRAL_TYPE_P (type)
     115              : )
     116              :     {
     117            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail74;
     118            3 :       {
     119            3 :         tree res_op0;
     120            3 :         {
     121            3 :           tree _o1[2], _r1;
     122            3 :           _o1[0] = captures[1];
     123            3 :           _o1[1] = captures[4];
     124            3 :           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     125            3 :           res_op0 = _r1;
     126              :         }
     127            3 :         tree res_op1;
     128            3 :         res_op1 = captures[2];
     129            3 :         tree _r;
     130            3 :         _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
     131            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 51, __FILE__, __LINE__, true);
     132            3 :         return _r;
     133              :       }
     134            0 : next_after_fail74:;
     135              :     }
     136              :   return NULL_TREE;
     137              : }
     138              : 
     139              : tree
     140            0 : generic_simplify_11 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     141              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     142              :  const enum tree_code ARG_UNUSED (bit_op))
     143              : {
     144            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     145            0 :   if (bit_op == BIT_AND_EXPR
     146              : )
     147              :     {
     148            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail85;
     149            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail85;
     150            0 :       {
     151            0 :         tree _r;
     152            0 :         _r =  build_zero_cst (type);
     153            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 58, __FILE__, __LINE__, true);
     154            0 :         return _r;
     155              :       }
     156              : next_after_fail85:;
     157              :     }
     158              :   else
     159              :     {
     160            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail86;
     161            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail86;
     162            0 :       {
     163            0 :         tree _r;
     164            0 :         _r =  build_minus_one_cst (type);
     165            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 59, __FILE__, __LINE__, true);
     166            0 :         return _r;
     167              :       }
     168              : next_after_fail86:;
     169              :     }
     170              :   return NULL_TREE;
     171              : }
     172              : 
     173              : tree
     174            0 : generic_simplify_20 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     175              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     176              : {
     177            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     178            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail95;
     179            0 :   {
     180            0 :     tree res_op0;
     181            0 :     res_op0 = captures[0];
     182            0 :     tree res_op1;
     183            0 :     res_op1 = captures[1];
     184            0 :     tree _r;
     185            0 :     _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     186            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 68, __FILE__, __LINE__, true);
     187              :     return _r;
     188              :   }
     189            0 : next_after_fail95:;
     190            0 :   return NULL_TREE;
     191              : }
     192              : 
     193              : tree
     194           57 : generic_simplify_27 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     195              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     196              : {
     197           57 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     198           57 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     199              : )
     200              :     {
     201           33 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail102;
     202           33 :       {
     203           33 :         tree res_op0;
     204           33 :         {
     205           33 :           tree _o1[1], _r1;
     206           33 :           _o1[0] = captures[0];
     207           33 :           if (TREE_TYPE (_o1[0]) != type)
     208              :             {
     209            2 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     210              :             }
     211              :           else
     212              :             _r1 = _o1[0];
     213           33 :           res_op0 = _r1;
     214              :         }
     215           33 :         tree res_op1;
     216           33 :         {
     217           33 :           tree _o1[1], _r1;
     218           33 :           _o1[0] = captures[1];
     219           33 :           _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     220           33 :           res_op1 = _r1;
     221              :         }
     222           33 :         tree _r;
     223           33 :         _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     224           33 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 75, __FILE__, __LINE__, true);
     225           33 :         return _r;
     226              :       }
     227            0 : next_after_fail102:;
     228              :     }
     229              :   return NULL_TREE;
     230              : }
     231              : 
     232              : tree
     233          599 : generic_simplify_35 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     234              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     235              :  const enum tree_code ARG_UNUSED (bitop))
     236              : {
     237          599 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     238          599 :   if (!CONSTANT_CLASS_P (captures[0])
     239              : )
     240              :     {
     241          599 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail110;
     242          599 :       {
     243          599 :         tree res_op0;
     244          599 :         res_op0 = captures[0];
     245          599 :         tree res_op1;
     246          599 :         {
     247          599 :           tree _o1[2], _r1;
     248          599 :           _o1[0] = captures[1];
     249          599 :           _o1[1] = captures[2];
     250          599 :           _r1 = fold_build2_loc (loc, bitop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     251          599 :           if (EXPR_P (_r1))
     252            0 :             goto next_after_fail110;
     253          599 :           res_op1 = _r1;
     254              :         }
     255          599 :         tree _r;
     256          599 :         _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
     257          599 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 82, __FILE__, __LINE__, true);
     258          599 :         return _r;
     259              :       }
     260              : next_after_fail110:;
     261              :     }
     262              :   else
     263              :     {
     264            0 :       {
     265            0 :  tree cst1 = const_binop (bitop, type, captures[0], captures[2]);
     266            0 :           if (cst1
     267              : )
     268              :             {
     269            0 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail111;
     270            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail111;
     271            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail111;
     272            0 :               {
     273            0 :                 tree res_op0;
     274            0 :                 res_op0 = captures[1];
     275            0 :                 tree res_op1;
     276            0 :                 res_op1 =  cst1;
     277            0 :                 tree _r;
     278            0 :                 _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
     279            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 83, __FILE__, __LINE__, true);
     280            0 :                 return _r;
     281              :               }
     282              : next_after_fail111:;
     283              :             }
     284              :           else
     285              :             {
     286            0 :               {
     287            0 :  tree cst2 = const_binop (bitop, type, captures[1], captures[2]);
     288            0 :                   if (cst2
     289              : )
     290              :                     {
     291            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail112;
     292            0 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail112;
     293            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail112;
     294            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail112;
     295            0 :                       {
     296            0 :                         tree res_op0;
     297            0 :                         res_op0 = captures[0];
     298            0 :                         tree res_op1;
     299            0 :                         res_op1 =  cst2;
     300            0 :                         tree _r;
     301            0 :                         _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
     302            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 84, __FILE__, __LINE__, true);
     303            0 :                         return _r;
     304              :                       }
     305              : next_after_fail112:;
     306              :                     }
     307              :               }
     308              :             }
     309              :       }
     310              :     }
     311              :   return NULL_TREE;
     312              : }
     313              : 
     314              : tree
     315          579 : generic_simplify_49 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     316              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     317              :  const enum tree_code ARG_UNUSED (op))
     318              : {
     319          579 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     320         1158 :   if (INTEGRAL_TYPE_P (type)
     321          577 :  && tree_int_cst_sgn (captures[2]) > 0
     322         2312 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[1])) == 0
     323              : )
     324              :     {
     325            6 :       {
     326            6 :  tree t = type;
     327            6 :  if (!TYPE_OVERFLOW_WRAPS (t))
     328            6 :  t = unsigned_type_for (t);
     329            6 :  wide_int wone = wi::one (TYPE_PRECISION (t));
     330            6 :  wide_int c = wi::add (wi::lshift (wone, wi::to_wide (captures[2])), wone);
     331            6 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail127;
     332            6 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail127;
     333            6 :           {
     334            6 :             tree res_op0;
     335            6 :             {
     336            6 :               tree _o1[2], _r1;
     337            6 :               {
     338            6 :                 tree _o2[1], _r2;
     339            6 :                 _o2[0] = captures[1];
     340            6 :                 if (TREE_TYPE (_o2[0]) != t)
     341              :                   {
     342            6 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     343              :                   }
     344              :                 else
     345              :                   _r2 = _o2[0];
     346            6 :                 _o1[0] = _r2;
     347              :               }
     348            6 :               _o1[1] =  wide_int_to_tree (t, c);
     349            6 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     350            6 :               res_op0 = _r1;
     351              :             }
     352            6 :             tree _r;
     353            6 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     354            6 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 95, __FILE__, __LINE__, true);
     355            6 :             return _r;
     356              :           }
     357            0 : next_after_fail127:;
     358            6 :       }
     359              :     }
     360              :   return NULL_TREE;
     361              : }
     362              : 
     363              : tree
     364      3013929 : generic_simplify_63 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     365              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     366              :  const enum tree_code ARG_UNUSED (inner_op),
     367              :  const enum tree_code ARG_UNUSED (neg_inner_op),
     368              :  const enum tree_code ARG_UNUSED (outer_op))
     369              : {
     370      3013929 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     371      3013929 :   if (!TYPE_SATURATING (type)
     372              : )
     373              :     {
     374      3013929 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     375      6027613 :  && !FIXED_POINT_TYPE_P (type)
     376              : )
     377              :         {
     378      3013684 :           if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
     379              : )
     380              :             {
     381      2038161 :               if (!CONSTANT_CLASS_P (captures[0])
     382              : )
     383              :                 {
     384      2038154 :                   if (outer_op == PLUS_EXPR
     385              : )
     386              :                     {
     387      2038154 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail144;
     388      2038154 :                       {
     389      2038154 :                         tree res_op0;
     390      2038154 :                         {
     391      2038154 :                           tree _o1[1], _r1;
     392      2038154 :                           _o1[0] = captures[0];
     393      2038154 :                           if (TREE_TYPE (_o1[0]) != type)
     394              :                             {
     395       862406 :                               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     396              :                             }
     397              :                           else
     398              :                             _r1 = _o1[0];
     399      2038154 :                           res_op0 = _r1;
     400              :                         }
     401      2038154 :                         tree res_op1;
     402      2038154 :                         {
     403      2038154 :                           tree _o1[2], _r1;
     404      2038154 :                           _o1[0] = captures[2];
     405      2038154 :                           {
     406      2038154 :                             tree _o2[1], _r2;
     407      2038154 :                             _o2[0] = captures[1];
     408      2038154 :                             if (TREE_TYPE (_o2[0]) != type)
     409              :                               {
     410       853332 :                                 _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
     411              :                               }
     412              :                             else
     413              :                               _r2 = _o2[0];
     414      2038154 :                             _o1[1] = _r2;
     415              :                           }
     416      2038154 :                           _r1 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     417      2038154 :                           if (EXPR_P (_r1))
     418            0 :                             goto next_after_fail144;
     419      2038154 :                           res_op1 = _r1;
     420              :                         }
     421      2038154 :                         tree _r;
     422      2038154 :                         _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     423      2038154 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 112, __FILE__, __LINE__, true);
     424      2038154 :                         return _r;
     425              :                       }
     426              : next_after_fail144:;
     427              :                     }
     428              :                   else
     429              :                     {
     430            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail145;
     431            0 :                       {
     432            0 :                         tree res_op0;
     433            0 :                         {
     434            0 :                           tree _o1[1], _r1;
     435            0 :                           _o1[0] = captures[0];
     436            0 :                           if (TREE_TYPE (_o1[0]) != type)
     437              :                             {
     438            0 :                               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     439              :                             }
     440              :                           else
     441              :                             _r1 = _o1[0];
     442            0 :                           res_op0 = _r1;
     443              :                         }
     444            0 :                         tree res_op1;
     445            0 :                         {
     446            0 :                           tree _o1[2], _r1;
     447            0 :                           _o1[0] = captures[2];
     448            0 :                           {
     449            0 :                             tree _o2[1], _r2;
     450            0 :                             _o2[0] = captures[1];
     451            0 :                             if (TREE_TYPE (_o2[0]) != type)
     452              :                               {
     453            0 :                                 _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
     454              :                               }
     455              :                             else
     456              :                               _r2 = _o2[0];
     457            0 :                             _o1[1] = _r2;
     458              :                           }
     459            0 :                           _r1 = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     460            0 :                           if (EXPR_P (_r1))
     461            0 :                             goto next_after_fail145;
     462            0 :                           res_op1 = _r1;
     463              :                         }
     464            0 :                         tree _r;
     465            0 :                         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     466            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 113, __FILE__, __LINE__, true);
     467            0 :                         return _r;
     468              :                       }
     469              : next_after_fail145:;
     470              :                     }
     471              :                 }
     472              :             }
     473              :           else
     474              :             {
     475      1951046 :               if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     476      1951046 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))
     477              : )
     478              :                 {
     479       177199 :                   if (outer_op == PLUS_EXPR
     480              : )
     481              :                     {
     482       177172 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail146;
     483       177172 :                       {
     484       177172 :                         tree res_op0;
     485       177172 :                         {
     486       177172 :                           tree _o1[2], _r1;
     487       177172 :                           _o1[0] = captures[0];
     488       177172 :                           {
     489       177172 :                             tree _o2[2], _r2;
     490       177172 :                             {
     491       177172 :                               tree _o3[1], _r3;
     492       177172 :                               _o3[0] = captures[2];
     493       177172 :                               if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
     494              :                                 {
     495       177172 :                                   _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
     496              :                                 }
     497              :                               else
     498              :                                 _r3 = _o3[0];
     499       177172 :                               _o2[0] = _r3;
     500              :                             }
     501       177172 :                             _o2[1] = captures[1];
     502       177172 :                             _r2 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     503       177172 :                             if (EXPR_P (_r2))
     504            0 :                               goto next_after_fail146;
     505       177172 :                             _o1[1] = _r2;
     506              :                           }
     507       177172 :                           _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     508       177172 :                           res_op0 = _r1;
     509              :                         }
     510       177172 :                         tree _r;
     511       177172 :                         _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     512       177172 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 114, __FILE__, __LINE__, true);
     513       177172 :                         return _r;
     514              :                       }
     515              : next_after_fail146:;
     516              :                     }
     517              :                   else
     518              :                     {
     519           27 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail147;
     520           27 :                       {
     521           27 :                         tree res_op0;
     522           27 :                         {
     523           27 :                           tree _o1[2], _r1;
     524           27 :                           _o1[0] = captures[0];
     525           27 :                           {
     526           27 :                             tree _o2[2], _r2;
     527           27 :                             {
     528           27 :                               tree _o3[1], _r3;
     529           27 :                               _o3[0] = captures[2];
     530           27 :                               if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
     531              :                                 {
     532           27 :                                   _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
     533              :                                 }
     534              :                               else
     535              :                                 _r3 = _o3[0];
     536           27 :                               _o2[0] = _r3;
     537              :                             }
     538           27 :                             _o2[1] = captures[1];
     539           27 :                             _r2 = fold_build2_loc (loc, neg_inner_op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     540           27 :                             if (EXPR_P (_r2))
     541            0 :                               goto next_after_fail147;
     542           27 :                             _o1[1] = _r2;
     543              :                           }
     544           27 :                           _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     545           27 :                           res_op0 = _r1;
     546              :                         }
     547           27 :                         tree _r;
     548           27 :                         _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     549           27 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 115, __FILE__, __LINE__, true);
     550           27 :                         return _r;
     551              :                       }
     552              : next_after_fail147:;
     553              :                     }
     554              :                 }
     555              :               else
     556              :                 {
     557       798324 :                   if (types_match (type, captures[0]) && !TYPE_OVERFLOW_SANITIZED (type)
     558              : )
     559              :                     {
     560       797081 :                       {
     561       797081 :  tree cst = const_binop (outer_op == inner_op
     562              :  ? PLUS_EXPR : MINUS_EXPR,
     563              :  type, captures[1], captures[2]);
     564       797081 :                           if (cst
     565              : )
     566              :                             {
     567       797081 :                               if (INTEGRAL_TYPE_P (type) && !TREE_OVERFLOW (cst)
     568              : )
     569              :                                 {
     570       797067 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail148;
     571       797067 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail148;
     572       797067 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail148;
     573       797067 :                                   {
     574       797067 :                                     tree res_op0;
     575       797067 :                                     res_op0 = captures[0];
     576       797067 :                                     tree res_op1;
     577       797067 :                                     res_op1 =  cst;
     578       797067 :                                     tree _r;
     579       797067 :                                     _r = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
     580       797067 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 116, __FILE__, __LINE__, true);
     581       797067 :                                     return _r;
     582              :                                   }
     583              : next_after_fail148:;
     584              :                                 }
     585              :                               else
     586              :                                 {
     587           28 :                                   if (INTEGRAL_TYPE_P (type)
     588           28 :  && wi::to_wide (cst) == wi::min_value (type)
     589              : )
     590              :                                     {
     591            7 :                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail149;
     592            7 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail149;
     593            7 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail149;
     594            7 :                                       {
     595            7 :                                         tree res_op0;
     596            7 :                                         res_op0 = captures[0];
     597            7 :                                         tree res_op1;
     598            7 :                                         res_op1 =  wide_int_to_tree (type, wi::to_wide (cst));
     599            7 :                                         tree _r;
     600            7 :                                         _r = fold_build2_loc (loc, neg_inner_op, type, res_op0, res_op1);
     601            7 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 117, __FILE__, __LINE__, true);
     602            7 :                                         return _r;
     603              :                                       }
     604              : next_after_fail149:;
     605              :                                     }
     606              :                                   else
     607              :                                     {
     608            7 :                                       {
     609            7 :  tree utype = unsigned_type_for (type);
     610            7 :                                           if (utype
     611              : )
     612              :                                             {
     613            7 :                                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail150;
     614            7 :                                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail150;
     615            7 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail150;
     616            7 :                                               {
     617            7 :                                                 tree res_op0;
     618            7 :                                                 {
     619            7 :                                                   tree _o1[2], _r1;
     620            7 :                                                   {
     621            7 :                                                     tree _o2[1], _r2;
     622            7 :                                                     _o2[0] = captures[0];
     623            7 :                                                     if (TREE_TYPE (_o2[0]) != utype)
     624              :                                                       {
     625            7 :                                                         _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o2[0]);
     626              :                                                       }
     627              :                                                     else
     628              :                                                       _r2 = _o2[0];
     629            7 :                                                     _o1[0] = _r2;
     630              :                                                   }
     631            7 :                                                   {
     632            7 :                                                     tree _o2[1], _r2;
     633            7 :                                                     _o2[0] =  TREE_OVERFLOW (cst)
     634            7 :  ? drop_tree_overflow (cst) : cst;
     635            7 :                                                     if (TREE_TYPE (_o2[0]) != utype)
     636              :                                                       {
     637            7 :                                                         _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o2[0]);
     638              :                                                       }
     639              :                                                     else
     640              :                                                       _r2 = _o2[0];
     641            7 :                                                     _o1[1] = _r2;
     642              :                                                   }
     643            7 :                                                   _r1 = fold_build2_loc (loc, inner_op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     644            7 :                                                   res_op0 = _r1;
     645              :                                                 }
     646            7 :                                                 tree _r;
     647            7 :                                                 _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     648            7 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 118, __FILE__, __LINE__, true);
     649            7 :                                                 return _r;
     650              :                                               }
     651              : next_after_fail150:;
     652              :                                             }
     653              :                                       }
     654              :                                     }
     655              :                                 }
     656              :                             }
     657              :                       }
     658              :                     }
     659              :                 }
     660              :             }
     661              :         }
     662              :     }
     663              :   return NULL_TREE;
     664              : }
     665              : 
     666              : tree
     667            0 : generic_simplify_121 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     668              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     669              :  const enum tree_code ARG_UNUSED (op))
     670              : {
     671            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     672            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail218;
     673            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail218;
     674            0 :   {
     675            0 :     tree _r;
     676            0 :     _r = captures[0];
     677            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 182, __FILE__, __LINE__, true);
     678              :     return _r;
     679              :   }
     680              : next_after_fail218:;
     681              :   return NULL_TREE;
     682              : }
     683              : 
     684              : tree
     685          253 : generic_simplify_128 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     686              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     687              :  const enum tree_code ARG_UNUSED (bitop))
     688              : {
     689          253 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     690          253 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail225;
     691          253 :   {
     692          253 :     tree res_op0;
     693          253 :     res_op0 = captures[0];
     694          253 :     tree _r;
     695          253 :     _r = non_lvalue_loc (loc, res_op0);
     696          253 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 187, __FILE__, __LINE__, true);
     697              :     return _r;
     698              :   }
     699            0 : next_after_fail225:;
     700            0 :   return NULL_TREE;
     701              : }
     702              : 
     703              : tree
     704            0 : generic_simplify_137 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     705              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     706              :  const enum tree_code ARG_UNUSED (op))
     707              : {
     708            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     709            0 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     710            0 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
     711              : )
     712              :     {
     713            0 :       if (single_use (captures[4]) && single_use (captures[5])
     714              : )
     715              :         {
     716            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail234;
     717            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail234;
     718            0 :           {
     719            0 :             tree res_op0;
     720            0 :             res_op0 = captures[0];
     721            0 :             tree res_op1;
     722            0 :             {
     723            0 :               tree _o1[1], _r1;
     724            0 :               _o1[0] = captures[6];
     725            0 :               if (TREE_TYPE (_o1[0]) != type)
     726              :                 {
     727            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     728              :                 }
     729              :               else
     730              :                 _r1 = _o1[0];
     731            0 :               res_op1 = _r1;
     732              :             }
     733            0 :             tree _r;
     734            0 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     735            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 194, __FILE__, __LINE__, true);
     736            0 :             return _r;
     737              :           }
     738              : next_after_fail234:;
     739              :         }
     740              :       else
     741              :         {
     742              :           if (single_use (captures[0]) && single_use (captures[1])
     743              : )
     744              :             {
     745              :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail235;
     746              :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail235;
     747              :               {
     748              :                 tree res_op0;
     749              :                 {
     750              :                   tree _o1[1], _r1;
     751              :                   _o1[0] = captures[3];
     752              :                   if (TREE_TYPE (_o1[0]) != type)
     753              :                     {
     754              :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     755              :                     }
     756              :                   else
     757              :                     _r1 = _o1[0];
     758              :                   res_op0 = _r1;
     759              :                 }
     760              :                 tree res_op1;
     761              :                 res_op1 = captures[4];
     762              :                 tree _r;
     763              :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     764              :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 195, __FILE__, __LINE__, true);
     765              :                 return _r;
     766              :               }
     767              : next_after_fail235:;
     768              :             }
     769              :         }
     770              :     }
     771              :   return NULL_TREE;
     772              : }
     773              : 
     774              : tree
     775            0 : generic_simplify_151 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     776              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     777              :  const enum tree_code ARG_UNUSED (cmp),
     778              :  const enum tree_code ARG_UNUSED (icmp))
     779              : {
     780            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     781            0 :   if (INTEGRAL_TYPE_P (type)
     782            0 :  && invert_tree_comparison (cmp, HONOR_NANS (captures[1])) == icmp
     783            0 :  && canonicalize_math_after_vectorization_p ()
     784              : )
     785              :     {
     786              :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail253;
     787              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail253;
     788              :       {
     789              :         tree res_op0;
     790              :         {
     791              :           tree _o1[3], _r1;
     792              :           _o1[0] = captures[0];
     793              :           _o1[1] = captures[3];
     794              :           _o1[2] = captures[5];
     795              :           _r1 = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
     796              :           res_op0 = _r1;
     797              :         }
     798              :         tree res_op1;
     799              :         res_op1 =  build_one_cst (type);
     800              :         tree _r;
     801              :         _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     802              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 202, __FILE__, __LINE__, true);
     803              :         return _r;
     804              :       }
     805            0 : next_after_fail253:;
     806              :     }
     807            0 :   return NULL_TREE;
     808              : }
     809              : 
     810              : tree
     811            0 : generic_simplify_164 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     812              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     813              : {
     814            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     815            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail288;
     816            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail288;
     817            0 :   {
     818            0 :     tree _r;
     819            0 :     _r =  constant_boolean_node (true, type);
     820            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
     821            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     822            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 229, __FILE__, __LINE__, true);
     823              :     return _r;
     824              :   }
     825              : next_after_fail288:;
     826              :   return NULL_TREE;
     827              : }
     828              : 
     829              : tree
     830            0 : generic_simplify_167 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     831              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     832              :  const enum tree_code ARG_UNUSED (code2),
     833              :  const enum tree_code ARG_UNUSED (code1))
     834              : {
     835            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     836            0 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
     837            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
     838            0 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
     839            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     840            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
     841            0 :  && bitwise_equal_p (captures[2], captures[5]))
     842              : )
     843              :     {
     844            0 :       {
     845            0 :  bool one_before = false;
     846            0 :  bool one_after = false;
     847            0 :  int cmp = 0;
     848            0 :  bool allbits = true;
     849            0 :  if (TREE_CODE (captures[2]) == INTEGER_CST
     850            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
     851              :  {
     852            0 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
     853            0 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
     854            0 :  auto t2 = wi::to_wide (captures[5]);
     855            0 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
     856            0 :  if (cmp < 0
     857            0 :  && t1 == t2 - 1)
     858              :  one_before = true;
     859            0 :  if (cmp > 0
     860            0 :  && t1 == t2 + 1)
     861              :  one_after = true;
     862              :  }
     863            0 :  bool val;
     864            0 :  switch (code2)
     865              :  {
     866            0 :  case EQ_EXPR: val = (cmp == 0); break;
     867            0 :  case NE_EXPR: val = (cmp != 0); break;
     868            0 :  case LT_EXPR: val = (cmp < 0); break;
     869            0 :  case GT_EXPR: val = (cmp > 0); break;
     870            0 :  case LE_EXPR: val = (cmp <= 0); break;
     871            0 :  case GE_EXPR: val = (cmp >= 0); break;
     872            0 :  default: gcc_unreachable ();
     873              :  }
     874            0 :           if (code1 == EQ_EXPR && val
     875              : )
     876              :             {
     877            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail292;
     878            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail292;
     879            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail292;
     880            0 :               {
     881            0 :                 tree _r;
     882            0 :                 _r = captures[3];
     883            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 211, __FILE__, __LINE__, true);
     884            0 :                 return _r;
     885              :               }
     886              : next_after_fail292:;
     887              :             }
     888              :           else
     889              :             {
     890            0 :               if (code1 == NE_EXPR && val && allbits
     891              : )
     892              :                 {
     893            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail293;
     894            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail293;
     895            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail293;
     896            0 :                   {
     897            0 :                     tree _r;
     898            0 :                     _r =  constant_boolean_node (true, type);
     899            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
     900            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     901            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 212, __FILE__, __LINE__, true);
     902            0 :                     return _r;
     903              :                   }
     904              : next_after_fail293:;
     905              :                 }
     906              :               else
     907              :                 {
     908            0 :                   if (code1 == NE_EXPR && !val && allbits
     909              : )
     910              :                     {
     911            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail294;
     912            0 :                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail294;
     913            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail294;
     914            0 :                       {
     915            0 :                         tree _r;
     916            0 :                         _r = captures[0];
     917            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 213, __FILE__, __LINE__, true);
     918            0 :                         return _r;
     919              :                       }
     920              : next_after_fail294:;
     921              :                     }
     922              :                   else
     923              :                     {
     924            0 :                       if (code1 == EQ_EXPR
     925            0 :  && code2 == GT_EXPR
     926            0 :  && cmp == 0
     927            0 :  && allbits
     928            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     929            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
     930            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     931              : )
     932              :                         {
     933            0 :                           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail295;
     934            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail295;
     935            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail295;
     936            0 :                           {
     937            0 :                             tree res_op0;
     938            0 :                             res_op0 = captures[4];
     939            0 :                             tree res_op1;
     940            0 :                             res_op1 = captures[5];
     941            0 :                             tree _r;
     942            0 :                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
     943            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 214, __FILE__, __LINE__, true);
     944            0 :                             return _r;
     945              :                           }
     946              : next_after_fail295:;
     947              :                         }
     948              :                       else
     949              :                         {
     950            0 :                           if (code1 == EQ_EXPR
     951            0 :  && code2 == LT_EXPR
     952            0 :  && cmp == 0
     953            0 :  && allbits
     954            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     955            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
     956            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     957              : )
     958              :                             {
     959            0 :                               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail296;
     960            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail296;
     961            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail296;
     962            0 :                               {
     963            0 :                                 tree res_op0;
     964            0 :                                 res_op0 = captures[4];
     965            0 :                                 tree res_op1;
     966            0 :                                 res_op1 = captures[5];
     967            0 :                                 tree _r;
     968            0 :                                 _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
     969            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 215, __FILE__, __LINE__, true);
     970            0 :                                 return _r;
     971              :                               }
     972              : next_after_fail296:;
     973              :                             }
     974              :                           else
     975              :                             {
     976            0 :                               if (code1 == EQ_EXPR
     977            0 :  && code2 == GE_EXPR
     978              :  && one_before
     979            0 :  && allbits
     980            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     981            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
     982            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     983              : )
     984              :                                 {
     985            0 :                                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail297;
     986            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail297;
     987            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail297;
     988            0 :                                   {
     989            0 :                                     tree res_op0;
     990            0 :                                     res_op0 = captures[4];
     991            0 :                                     tree res_op1;
     992            0 :                                     {
     993            0 :                                       tree _o1[1], _r1;
     994            0 :                                       _o1[0] = captures[2];
     995            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
     996              :                                         {
     997            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
     998              :                                         }
     999              :                                       else
    1000              :                                         _r1 = _o1[0];
    1001            0 :                                       res_op1 = _r1;
    1002              :                                     }
    1003            0 :                                     tree _r;
    1004            0 :                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1005            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 216, __FILE__, __LINE__, true);
    1006            0 :                                     return _r;
    1007              :                                   }
    1008              : next_after_fail297:;
    1009              :                                 }
    1010              :                               else
    1011              :                                 {
    1012            0 :                                   if (code1 == EQ_EXPR
    1013            0 :  && code2 == LE_EXPR
    1014              :  && one_after
    1015            0 :  && allbits
    1016            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    1017            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
    1018            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    1019              : )
    1020              :                                     {
    1021            0 :                                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail298;
    1022            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail298;
    1023            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail298;
    1024            0 :                                       {
    1025            0 :                                         tree res_op0;
    1026            0 :                                         res_op0 = captures[4];
    1027            0 :                                         tree res_op1;
    1028            0 :                                         {
    1029            0 :                                           tree _o1[1], _r1;
    1030            0 :                                           _o1[0] = captures[2];
    1031            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1032              :                                             {
    1033            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1034              :                                             }
    1035              :                                           else
    1036              :                                             _r1 = _o1[0];
    1037            0 :                                           res_op1 = _r1;
    1038              :                                         }
    1039            0 :                                         tree _r;
    1040            0 :                                         _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1041            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 217, __FILE__, __LINE__, true);
    1042            0 :                                         return _r;
    1043              :                                       }
    1044              : next_after_fail298:;
    1045              :                                     }
    1046              :                                 }
    1047              :                             }
    1048              :                         }
    1049              :                     }
    1050              :                 }
    1051              :             }
    1052              :       }
    1053              :     }
    1054              :   return NULL_TREE;
    1055              : }
    1056              : 
    1057              : tree
    1058          189 : generic_simplify_207 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1059              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1060              :  const enum tree_code ARG_UNUSED (cmp))
    1061              : {
    1062          189 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1063          378 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1064          356 :  && !TYPE_OVERFLOW_WRAPS (TREE_TYPE(captures[0]))
    1065              : )
    1066              :     {
    1067            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail348;
    1068            3 :       {
    1069            3 :         tree res_op0;
    1070            3 :         res_op0 = captures[0];
    1071            3 :         tree res_op1;
    1072            3 :         res_op1 =  build_zero_cst (TREE_TYPE(captures[0]));
    1073            3 :         tree _r;
    1074            3 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1075            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 261, __FILE__, __LINE__, true);
    1076            3 :         return _r;
    1077              :       }
    1078            0 : next_after_fail348:;
    1079              :     }
    1080              :   return NULL_TREE;
    1081              : }
    1082              : 
    1083              : tree
    1084           33 : generic_simplify_216 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1085              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1086              :  const enum tree_code ARG_UNUSED (cmp),
    1087              :  const enum tree_code ARG_UNUSED (icmp))
    1088              : {
    1089           33 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1090           66 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1091           29 :  && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1092           13 :  && type_has_mode_precision_p (TREE_TYPE (captures[0]))
    1093           13 :  && types_match (captures[0], captures[2])
    1094           13 :  && tree_fits_shwi_p (captures[1])
    1095           13 :  && tree_to_shwi (captures[1]) > 0
    1096           46 :  && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
    1097              : )
    1098              :     {
    1099           13 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail360;
    1100           13 :       {
    1101           13 :         tree res_op0;
    1102           13 :         {
    1103           13 :           tree _o1[2], _r1;
    1104           13 :           _o1[0] = captures[0];
    1105           13 :           _o1[1] = captures[2];
    1106           13 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1107           13 :           res_op0 = _r1;
    1108              :         }
    1109           13 :         tree res_op1;
    1110           13 :         {
    1111           13 :           tree _o1[2], _r1;
    1112           13 :           _o1[0] =  build_one_cst (TREE_TYPE (captures[0]));
    1113           13 :           _o1[1] = captures[1];
    1114           13 :           _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1115           13 :           res_op1 = _r1;
    1116              :         }
    1117           13 :         tree _r;
    1118           13 :         _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1119           13 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 272, __FILE__, __LINE__, true);
    1120           13 :         return _r;
    1121              :       }
    1122            0 : next_after_fail360:;
    1123              :     }
    1124              :   return NULL_TREE;
    1125              : }
    1126              : 
    1127              : tree
    1128            0 : generic_simplify_226 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1129              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1130              :  const enum tree_code ARG_UNUSED (op))
    1131              : {
    1132            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1133            0 :   if (tree_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    1134            0 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
    1135            0 :  && (CONSTANT_CLASS_P (captures[3]) || (single_use (captures[1]) && single_use (captures[0])))
    1136              : )
    1137              :     {
    1138            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail383;
    1139            0 :       {
    1140            0 :         tree res_op0;
    1141            0 :         res_op0 = captures[3];
    1142            0 :         tree res_op1;
    1143            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[3]));
    1144            0 :         tree _r;
    1145            0 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1146            0 :         if (TREE_SIDE_EFFECTS (captures[2]))
    1147            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1148            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 291, __FILE__, __LINE__, true);
    1149            0 :         return _r;
    1150              :       }
    1151            0 : next_after_fail383:;
    1152              :     }
    1153              :   return NULL_TREE;
    1154              : }
    1155              : 
    1156              : tree
    1157            0 : generic_simplify_234 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1158              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1159              :  const enum tree_code ARG_UNUSED (cmp))
    1160              : {
    1161            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1162            0 :   if (wi::lt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
    1163            0 :  TYPE_SIGN (TREE_TYPE (captures[0])))
    1164              : )
    1165              :     {
    1166            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail391;
    1167            0 :       {
    1168            0 :         tree _r;
    1169            0 :         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1170            0 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1171            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1172            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1173            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1174            0 :         if (TREE_SIDE_EFFECTS (captures[2]))
    1175            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1176            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 302, __FILE__, __LINE__, true);
    1177            0 :         return _r;
    1178              :       }
    1179            0 : next_after_fail391:;
    1180              :     }
    1181              :   else
    1182              :     {
    1183            0 :       if (wi::gt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
    1184            0 :  TYPE_SIGN (TREE_TYPE (captures[0])))
    1185              : )
    1186              :         {
    1187            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail392;
    1188            0 :           {
    1189            0 :             tree res_op0;
    1190            0 :             res_op0 = captures[0];
    1191            0 :             tree res_op1;
    1192            0 :             res_op1 = captures[2];
    1193            0 :             tree _r;
    1194            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1195            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1196            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1197            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 303, __FILE__, __LINE__, true);
    1198            0 :             return _r;
    1199              :           }
    1200            0 : next_after_fail392:;
    1201              :         }
    1202              :     }
    1203              :   return NULL_TREE;
    1204              : }
    1205              : 
    1206              : tree
    1207          383 : generic_simplify_245 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1208              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1209              :  const enum tree_code ARG_UNUSED (rotate),
    1210              :  const enum tree_code ARG_UNUSED (invrot),
    1211              :  const enum tree_code ARG_UNUSED (cmp))
    1212              : {
    1213          383 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1214          383 :   if (integer_zerop (captures[2]) || integer_all_onesp (captures[2])
    1215              : )
    1216              :     {
    1217            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail414;
    1218            0 :       {
    1219            0 :         tree res_op0;
    1220            0 :         res_op0 = captures[0];
    1221            0 :         tree res_op1;
    1222            0 :         res_op1 = captures[2];
    1223            0 :         tree _r;
    1224            0 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1225            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1226            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1227            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 325, __FILE__, __LINE__, true);
    1228            0 :         return _r;
    1229              :       }
    1230            0 : next_after_fail414:;
    1231              :     }
    1232              :   return NULL_TREE;
    1233              : }
    1234              : 
    1235              : tree
    1236        14827 : generic_simplify_252 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1237              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1238              :  const enum tree_code ARG_UNUSED (cmp))
    1239              : {
    1240        14827 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1241        14827 :   if (single_use (captures[0])
    1242              : )
    1243              :     {
    1244        14827 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail422;
    1245        14827 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail422;
    1246        14827 :       {
    1247        14827 :         tree res_op0;
    1248        14827 :         res_op0 = captures[1];
    1249        14827 :         tree res_op1;
    1250        14827 :         res_op1 = captures[2];
    1251        14827 :         tree _r;
    1252        14827 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1253        14827 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 332, __FILE__, __LINE__, true);
    1254        14827 :         return _r;
    1255              :       }
    1256              : next_after_fail422:;
    1257              :     }
    1258              :   return NULL_TREE;
    1259              : }
    1260              : 
    1261              : tree
    1262           24 : generic_simplify_259 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1263              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1264              :  const enum tree_code ARG_UNUSED (cmp))
    1265              : {
    1266           24 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1267           24 :   if (single_use (captures[1]) && single_use (captures[3])
    1268              : )
    1269              :     {
    1270           24 :       {
    1271           24 :  tree otype = TREE_TYPE (captures[0]);
    1272           24 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail434;
    1273           24 :           {
    1274           24 :             tree res_op0;
    1275           24 :             {
    1276           24 :               tree _o1[1], _r1;
    1277           24 :               _o1[0] = captures[4];
    1278           24 :               if (TREE_TYPE (_o1[0]) != otype)
    1279              :                 {
    1280            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
    1281              :                 }
    1282              :               else
    1283              :                 _r1 = _o1[0];
    1284           24 :               res_op0 = _r1;
    1285              :             }
    1286           24 :             tree res_op1;
    1287           24 :             {
    1288           24 :               tree _o1[1], _r1;
    1289           24 :               _o1[0] = captures[2];
    1290           24 :               if (TREE_TYPE (_o1[0]) != otype)
    1291              :                 {
    1292            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, otype, _o1[0]);
    1293              :                 }
    1294              :               else
    1295              :                 _r1 = _o1[0];
    1296           24 :               res_op1 = _r1;
    1297              :             }
    1298           24 :             tree _r;
    1299           24 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1300           24 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 342, __FILE__, __LINE__, true);
    1301           24 :             return _r;
    1302              :           }
    1303            0 : next_after_fail434:;
    1304              :       }
    1305              :     }
    1306            0 :   return NULL_TREE;
    1307              : }
    1308              : 
    1309              : tree
    1310            6 : generic_simplify_264 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1311              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1312              :  const combined_fn ARG_UNUSED (sq),
    1313              :  const enum tree_code ARG_UNUSED (cmp))
    1314              : {
    1315            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1316            6 :   if (flag_unsafe_math_optimizations && ! flag_errno_math
    1317              : )
    1318              :     {
    1319            0 :       if (! HONOR_NANS (captures[0])
    1320              : )
    1321              :         {
    1322            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail471;
    1323            0 :           {
    1324            0 :             tree res_op0;
    1325            0 :             res_op0 = captures[0];
    1326            0 :             tree res_op1;
    1327            0 :             res_op1 = captures[1];
    1328            0 :             tree _r;
    1329            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1330            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 380, __FILE__, __LINE__, true);
    1331            0 :             return _r;
    1332              :           }
    1333            0 : next_after_fail471:;
    1334              :         }
    1335              :     }
    1336              :   return NULL_TREE;
    1337              : }
    1338              : 
    1339              : tree
    1340         2599 : generic_simplify_269 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1341              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1342              :  const enum tree_code ARG_UNUSED (cmp),
    1343              :  const enum tree_code ARG_UNUSED (scmp))
    1344              : {
    1345         2599 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1346         4828 :   if (FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1347         4828 :  || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1348         2229 :  && (cmp == EQ_EXPR
    1349         2229 :  || cmp == NE_EXPR
    1350         1454 :  || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
    1351              : )
    1352              :     {
    1353         1449 :       {
    1354         1449 :  tree tem = const_unop (NEGATE_EXPR, TREE_TYPE (captures[0]), captures[1]);
    1355         1449 :           if (tem && !TREE_OVERFLOW (tem)
    1356              : )
    1357              :             {
    1358         1421 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail485;
    1359         1421 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail485;
    1360         1421 :               {
    1361         1421 :                 tree res_op0;
    1362         1421 :                 res_op0 = captures[0];
    1363         1421 :                 tree res_op1;
    1364         1421 :                 res_op1 =  tem;
    1365         1421 :                 tree _r;
    1366         1421 :                 _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
    1367         1421 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 394, __FILE__, __LINE__, true);
    1368         1421 :                 return _r;
    1369              :               }
    1370              : next_after_fail485:;
    1371              :             }
    1372              :       }
    1373              :     }
    1374              :   return NULL_TREE;
    1375              : }
    1376              : 
    1377              : tree
    1378          699 : generic_simplify_272 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1379              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1380              :  const enum tree_code ARG_UNUSED (cmp))
    1381              : {
    1382          699 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1383          699 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    1384         1398 :  && wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3])) != 0
    1385              : )
    1386              :     {
    1387            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail502;
    1388            0 :       {
    1389            0 :         tree _r;
    1390            0 :         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1391            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1392            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1393            0 :         if (TREE_SIDE_EFFECTS (captures[2]))
    1394            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1395            0 :         if (TREE_SIDE_EFFECTS (captures[3]))
    1396            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1397            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 403, __FILE__, __LINE__, true);
    1398            0 :         return _r;
    1399              :       }
    1400            0 : next_after_fail502:;
    1401              :     }
    1402              :   return NULL_TREE;
    1403              : }
    1404              : 
    1405              : tree
    1406           62 : generic_simplify_275 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1407              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1408              :  const enum tree_code ARG_UNUSED (cmp))
    1409              : {
    1410           62 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1411           62 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail508;
    1412           62 :   {
    1413           62 :     tree res_op0;
    1414           62 :     res_op0 = captures[1];
    1415           62 :     tree res_op1;
    1416           62 :     res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    1417           62 :     tree _r;
    1418           62 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1419           62 :     if (TREE_SIDE_EFFECTS (captures[0]))
    1420            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1421           62 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 409, __FILE__, __LINE__, true);
    1422              :     return _r;
    1423              :   }
    1424            0 : next_after_fail508:;
    1425            0 :   return NULL_TREE;
    1426              : }
    1427              : 
    1428              : tree
    1429           26 : generic_simplify_279 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1430              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1431              :  const enum tree_code ARG_UNUSED (cmp))
    1432              : {
    1433           26 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1434           26 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    1435              : )
    1436              :     {
    1437           26 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail512;
    1438           26 :       {
    1439           26 :         tree res_op0;
    1440           26 :         res_op0 = captures[1];
    1441           26 :         tree res_op1;
    1442           26 :         {
    1443           26 :           tree _o1[2], _r1;
    1444           26 :           _o1[0] = captures[2];
    1445           26 :           {
    1446           26 :             tree _o2[1], _r2;
    1447           26 :             _o2[0] = captures[3];
    1448           26 :             if (TREE_TYPE (_o2[0]) != TREE_TYPE (res_op0))
    1449              :               {
    1450            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o2[0]);
    1451              :               }
    1452              :             else
    1453              :               _r2 = _o2[0];
    1454           26 :             _o1[1] = _r2;
    1455              :           }
    1456           26 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1457           26 :           res_op1 = _r1;
    1458              :         }
    1459           26 :         tree _r;
    1460           26 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1461           26 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 413, __FILE__, __LINE__, true);
    1462           26 :         return _r;
    1463              :       }
    1464            0 : next_after_fail512:;
    1465              :     }
    1466              :   return NULL_TREE;
    1467              : }
    1468              : 
    1469              : tree
    1470       111445 : generic_simplify_283 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1471              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1472              :  const enum tree_code ARG_UNUSED (cmp),
    1473              :  const enum tree_code ARG_UNUSED (ncmp))
    1474              : {
    1475       111445 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1476       222485 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1477        63430 :  && type_has_mode_precision_p (TREE_TYPE (captures[1]))
    1478        62361 :  && element_precision (captures[0]) >= element_precision (captures[1])
    1479       222890 :  && wi::only_sign_bit_p (wi::to_wide (captures[2]), element_precision (captures[1]))
    1480              : )
    1481              :     {
    1482         6347 :       {
    1483         6347 :  tree stype = signed_type_for (TREE_TYPE (captures[1]));
    1484         6347 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail516;
    1485         6347 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail516;
    1486         6347 :           {
    1487         6347 :             tree res_op0;
    1488         6347 :             {
    1489         6347 :               tree _o1[1], _r1;
    1490         6347 :               _o1[0] = captures[1];
    1491         6347 :               if (TREE_TYPE (_o1[0]) != stype)
    1492              :                 {
    1493         5695 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
    1494              :                 }
    1495              :               else
    1496              :                 _r1 = _o1[0];
    1497         6347 :               res_op0 = _r1;
    1498              :             }
    1499         6347 :             tree res_op1;
    1500         6347 :             res_op1 =  build_zero_cst (stype);
    1501         6347 :             tree _r;
    1502         6347 :             _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1503         6347 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1504            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1505         6347 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 417, __FILE__, __LINE__, true);
    1506         6347 :             return _r;
    1507              :           }
    1508              : next_after_fail516:;
    1509              :       }
    1510              :     }
    1511              :   return NULL_TREE;
    1512              : }
    1513              : 
    1514              : tree
    1515      4921372 : generic_simplify_289 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1516              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1517              :  const enum tree_code ARG_UNUSED (cmp))
    1518              : {
    1519      4921372 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1520      4921372 :   {
    1521      4921372 :  poly_int64 off0, off1;
    1522      4921372 :  tree base0, base1;
    1523      4921372 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[2], base0, base1,
    1524              :  off0, off1,
    1525              : 1
    1526              : );
    1527      4921372 :       if (equal == 1
    1528              : )
    1529              :         {
    1530      4880641 :           if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
    1531              : )
    1532              :             {
    1533       529624 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail522;
    1534       529624 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail522;
    1535       529624 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail522;
    1536       529624 :               {
    1537       529624 :                 tree _r;
    1538       529624 :                 _r =  constant_boolean_node (known_eq (off0, off1), type);
    1539       529624 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 421, __FILE__, __LINE__, true);
    1540      4904505 :                 return _r;
    1541              :               }
    1542        16867 : next_after_fail522:;
    1543              :             }
    1544              :           else
    1545              :             {
    1546      4287528 :               if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
    1547              : )
    1548              :                 {
    1549      4287528 :                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail523;
    1550      4287528 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail523;
    1551      4287528 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail523;
    1552      4287528 :                   {
    1553      4287528 :                     tree _r;
    1554      4287528 :                     _r =  constant_boolean_node (known_ne (off0, off1), type);
    1555      4287528 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 422, __FILE__, __LINE__, true);
    1556      4287528 :                     return _r;
    1557              :                   }
    1558        16867 : next_after_fail523:;
    1559              :                 }
    1560              :               else
    1561              :                 {
    1562        53535 :                   if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1))
    1563              : )
    1564              :                     {
    1565        53535 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail524;
    1566        53535 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail524;
    1567        53535 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail524;
    1568        53535 :                       {
    1569        53535 :                         tree _r;
    1570        53535 :                         _r =  constant_boolean_node (known_lt (off0, off1), type);
    1571        53535 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 423, __FILE__, __LINE__, true);
    1572        53535 :                         return _r;
    1573              :                       }
    1574        16867 : next_after_fail524:;
    1575              :                     }
    1576              :                   else
    1577              :                     {
    1578         6035 :                       if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1))
    1579              : )
    1580              :                         {
    1581         6035 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail525;
    1582         6035 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail525;
    1583         6035 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail525;
    1584         6035 :                           {
    1585         6035 :                             tree _r;
    1586         6035 :                             _r =  constant_boolean_node (known_le (off0, off1), type);
    1587         6035 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 424, __FILE__, __LINE__, true);
    1588         6035 :                             return _r;
    1589              :                           }
    1590        16867 : next_after_fail525:;
    1591              :                         }
    1592              :                       else
    1593              :                         {
    1594         3419 :                           if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1))
    1595              : )
    1596              :                             {
    1597         3419 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail526;
    1598         3419 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail526;
    1599         3419 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail526;
    1600         3419 :                               {
    1601         3419 :                                 tree _r;
    1602         3419 :                                 _r =  constant_boolean_node (known_ge (off0, off1), type);
    1603         3419 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 425, __FILE__, __LINE__, true);
    1604         3419 :                                 return _r;
    1605              :                               }
    1606        16867 : next_after_fail526:;
    1607              :                             }
    1608              :                           else
    1609              :                             {
    1610          500 :                               if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1))
    1611              : )
    1612              :                                 {
    1613          500 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail527;
    1614          500 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail527;
    1615          500 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail527;
    1616          500 :                                   {
    1617          500 :                                     tree _r;
    1618          500 :                                     _r =  constant_boolean_node (known_gt (off0, off1), type);
    1619          500 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 426, __FILE__, __LINE__, true);
    1620          500 :                                     return _r;
    1621              :                                   }
    1622        16867 : next_after_fail527:;
    1623              :                                 }
    1624              :                             }
    1625              :                         }
    1626              :                     }
    1627              :                 }
    1628              :             }
    1629              :         }
    1630              :       else
    1631              :         {
    1632        40731 :           if (equal == 0
    1633              : )
    1634              :             {
    1635        23864 :               if (cmp == EQ_EXPR
    1636              : )
    1637              :                 {
    1638        17778 :                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail528;
    1639        17778 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail528;
    1640        17778 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail528;
    1641        17778 :                   {
    1642        17778 :                     tree _r;
    1643        17778 :                     _r =  constant_boolean_node (false, type);
    1644        17778 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 427, __FILE__, __LINE__, true);
    1645        17778 :                     return _r;
    1646              :                   }
    1647        16867 : next_after_fail528:;
    1648              :                 }
    1649              :               else
    1650              :                 {
    1651         6086 :                   if (cmp == NE_EXPR
    1652              : )
    1653              :                     {
    1654         6086 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail529;
    1655         6086 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail529;
    1656         6086 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail529;
    1657         6086 :                       {
    1658         6086 :                         tree _r;
    1659         6086 :                         _r =  constant_boolean_node (true, type);
    1660         6086 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 428, __FILE__, __LINE__, true);
    1661         6086 :                         return _r;
    1662              :                       }
    1663        16867 : next_after_fail529:;
    1664              :                     }
    1665              :                 }
    1666              :             }
    1667              :         }
    1668              :   }
    1669        16867 :   return NULL_TREE;
    1670              : }
    1671              : 
    1672              : tree
    1673       294488 : generic_simplify_304 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1674              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1675              :  const enum tree_code ARG_UNUSED (cmp),
    1676              :  const enum tree_code ARG_UNUSED (icmp),
    1677              :  const enum tree_code ARG_UNUSED (ncmp))
    1678              : {
    1679       294488 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1680       294488 :   if (types_match (type, TREE_TYPE (captures[0]))
    1681              : )
    1682              :     {
    1683        46984 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail570;
    1684        46984 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail570;
    1685        46984 :       {
    1686        46984 :         tree res_op0;
    1687        46984 :         res_op0 = captures[1];
    1688        46984 :         tree res_op1;
    1689        46984 :         res_op1 = captures[2];
    1690        46984 :         tree _r;
    1691        46984 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1692        46984 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 461, __FILE__, __LINE__, true);
    1693        46984 :         return _r;
    1694              :       }
    1695              : next_after_fail570:;
    1696              :     }
    1697              :   return NULL_TREE;
    1698              : }
    1699              : 
    1700              : tree
    1701            0 : generic_simplify_309 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1702              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1703              :  const combined_fn ARG_UNUSED (copysigns))
    1704              : {
    1705            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1706            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail576;
    1707            0 :   {
    1708            0 :     tree res_op0;
    1709            0 :     res_op0 = captures[0];
    1710            0 :     tree res_op1;
    1711            0 :     res_op1 = captures[2];
    1712            0 :     tree _r;
    1713            0 :     _r = maybe_build_call_expr_loc (loc, copysigns, type, 2, res_op0, res_op1);
    1714            0 :     if (!_r)
    1715            0 :       goto next_after_fail576;
    1716            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    1717            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1718            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 467, __FILE__, __LINE__, true);
    1719              :     return _r;
    1720              :   }
    1721              : next_after_fail576:;
    1722              :   return NULL_TREE;
    1723              : }
    1724              : 
    1725              : tree
    1726         2238 : generic_simplify_315 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1727              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1728              :  const enum tree_code ARG_UNUSED (div))
    1729              : {
    1730         2238 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1731         2238 :   if (!integer_zerop (captures[1])
    1732              : )
    1733              :     {
    1734         1737 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail584;
    1735         1737 :       {
    1736         1737 :         tree _r;
    1737         1737 :         _r = captures[0];
    1738         1737 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1739           59 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1740         1737 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 473, __FILE__, __LINE__, true);
    1741         1737 :         return _r;
    1742              :       }
    1743            0 : next_after_fail584:;
    1744              :     }
    1745              :   return NULL_TREE;
    1746              : }
    1747              : 
    1748              : tree
    1749         9394 : generic_simplify_321 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1750              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1751              :  const enum tree_code ARG_UNUSED (div))
    1752              : {
    1753         9394 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1754         9394 :   {
    1755         9394 :  wi::overflow_type overflow;
    1756         9394 :  wide_int mul = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[3]),
    1757        18788 :  TYPE_SIGN (type), &overflow);
    1758         9394 :       if (div == EXACT_DIV_EXPR
    1759         9394 :  || optimize_successive_divisions_p (captures[3], captures[0])
    1760              : )
    1761              :         {
    1762            0 :           if (!overflow
    1763              : )
    1764              :             {
    1765            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail590;
    1766            0 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail590;
    1767            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail590;
    1768            0 :               {
    1769            0 :                 tree res_op0;
    1770            0 :                 res_op0 = captures[1];
    1771            0 :                 tree res_op1;
    1772            0 :                 res_op1 =  wide_int_to_tree (type, mul);
    1773            0 :                 tree _r;
    1774            0 :                 _r = fold_build2_loc (loc, div, type, res_op0, res_op1);
    1775            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 479, __FILE__, __LINE__, true);
    1776            0 :                 return _r;
    1777              :               }
    1778         9394 : next_after_fail590:;
    1779              :             }
    1780              :           else
    1781              :             {
    1782            0 :               if (TYPE_UNSIGNED (type)
    1783            0 :  || mul != wi::min_value (TYPE_PRECISION (type), SIGNED)
    1784              : )
    1785              :                 {
    1786            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail591;
    1787            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail591;
    1788            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail591;
    1789            0 :                   {
    1790            0 :                     tree _r;
    1791            0 :                     _r =  build_zero_cst (type);
    1792            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1793            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1794            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 480, __FILE__, __LINE__, true);
    1795            0 :                     return _r;
    1796              :                   }
    1797         9394 : next_after_fail591:;
    1798              :                 }
    1799              :             }
    1800              :         }
    1801            0 :   }
    1802         9394 :   return NULL_TREE;
    1803              : }
    1804              : 
    1805              : tree
    1806      1625081 : generic_simplify_333 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1807              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1808              :  const enum tree_code ARG_UNUSED (mod))
    1809              : {
    1810      1625081 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1811      1913805 :   if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
    1812      1338832 :  && INTEGRAL_TYPE_P (type)
    1813      1338832 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1814      1338832 :  && (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[1]))
    1815            3 :  || TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1816            1 :  || !TYPE_UNSIGNED (type))
    1817      2963913 :  && integer_pow2p (captures[2]) && tree_int_cst_sgn (captures[2]) > 0
    1818              : )
    1819              :     {
    1820       981469 :       {
    1821       981469 :  tree utype = TREE_TYPE (captures[1]);
    1822       981469 :  if (!TYPE_OVERFLOW_WRAPS (utype))
    1823          303 :  utype = unsigned_type_for (utype);
    1824       981469 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail603;
    1825       981469 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail603;
    1826       981469 :           {
    1827       981469 :             tree res_op0;
    1828       981469 :             res_op0 = captures[0];
    1829       981469 :             tree res_op1;
    1830       981469 :             {
    1831       981469 :               tree _o1[1], _r1;
    1832       981469 :               {
    1833       981469 :                 tree _o2[2], _r2;
    1834       981469 :                 {
    1835       981469 :                   tree _o3[1], _r3;
    1836       981469 :                   _o3[0] = captures[1];
    1837       981469 :                   if (TREE_TYPE (_o3[0]) != utype)
    1838              :                     {
    1839          303 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    1840              :                     }
    1841              :                   else
    1842              :                     _r3 = _o3[0];
    1843       981469 :                   _o2[0] = _r3;
    1844              :                 }
    1845       981469 :                 _o2[1] =  build_one_cst (utype);
    1846       981469 :                 _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1847       981469 :                 _o1[0] = _r2;
    1848              :               }
    1849       981469 :               if (TREE_TYPE (_o1[0]) != type)
    1850              :                 {
    1851        20178 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    1852              :                 }
    1853              :               else
    1854              :                 _r1 = _o1[0];
    1855       981469 :               res_op1 = _r1;
    1856              :             }
    1857       981469 :             tree _r;
    1858       981469 :             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    1859       981469 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 492, __FILE__, __LINE__, true);
    1860       981469 :             return _r;
    1861              :           }
    1862              : next_after_fail603:;
    1863              :       }
    1864              :     }
    1865              :   return NULL_TREE;
    1866              : }
    1867              : 
    1868              : tree
    1869            0 : generic_simplify_350 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1870              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1871              :  const enum tree_code ARG_UNUSED (cmp),
    1872              :  const enum tree_code ARG_UNUSED (minmax))
    1873              : {
    1874            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1875            0 :   if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1876            0 :  && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1877              : )
    1878              :     {
    1879            0 :       {
    1880            0 :  tree_code code;
    1881            0 :  widest_int c1 = wi::mask<widest_int>(TYPE_PRECISION (type) - 1, 0);
    1882            0 :  tree_code ncmp = cmp == GE_EXPR ? LE_EXPR : GT_EXPR;
    1883            0 :  code = minmax_from_comparison (ncmp, captures[0], c1, wi::to_widest (captures[4]));
    1884            0 :           if (ncmp == LE_EXPR
    1885            0 :  && code == MIN_EXPR
    1886            0 :  && wi::le_p (wi::to_wide (captures[3]),
    1887            0 :  wi::to_wide (captures[4]),
    1888            0 :  TYPE_SIGN (type))
    1889              : )
    1890              :             {
    1891            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail627;
    1892            0 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail627;
    1893            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail627;
    1894            0 :               {
    1895            0 :                 tree res_op0;
    1896            0 :                 res_op0 = captures[2];
    1897            0 :                 tree res_op1;
    1898            0 :                 res_op1 = captures[4];
    1899            0 :                 tree _r;
    1900            0 :                 _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    1901            0 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    1902            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1903            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 516, __FILE__, __LINE__, true);
    1904            0 :                 return _r;
    1905              :               }
    1906            0 : next_after_fail627:;
    1907              :             }
    1908              :           else
    1909              :             {
    1910            0 :               if (ncmp == GT_EXPR
    1911            0 :  && code == MAX_EXPR
    1912            0 :  && wi::ge_p (wi::to_wide (captures[3]),
    1913            0 :  wi::to_wide (captures[4]),
    1914            0 :  TYPE_SIGN (type))
    1915              : )
    1916              :                 {
    1917            0 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail628;
    1918            0 :                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail628;
    1919            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail628;
    1920            0 :                   {
    1921            0 :                     tree res_op0;
    1922            0 :                     res_op0 = captures[2];
    1923            0 :                     tree res_op1;
    1924            0 :                     res_op1 = captures[4];
    1925            0 :                     tree _r;
    1926            0 :                     _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
    1927            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1928            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1929            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 517, __FILE__, __LINE__, true);
    1930            0 :                     return _r;
    1931              :                   }
    1932            0 : next_after_fail628:;
    1933              :                 }
    1934              :             }
    1935            0 :       }
    1936              :     }
    1937              :   return NULL_TREE;
    1938              : }
    1939              : 
    1940              : tree
    1941            0 : generic_simplify_368 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1942              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1943              :  const enum tree_code ARG_UNUSED (cmp))
    1944              : {
    1945            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1946            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail646;
    1947            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail646;
    1948            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail646;
    1949            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail646;
    1950            0 :   {
    1951            0 :     tree _r;
    1952            0 :     _r = captures[3];
    1953            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 535, __FILE__, __LINE__, true);
    1954              :     return _r;
    1955              :   }
    1956              : next_after_fail646:;
    1957              :   return NULL_TREE;
    1958              : }
    1959              : 
    1960              : tree
    1961         2011 : generic_simplify_375 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1962              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    1963              : {
    1964         2011 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1965         2011 :   if (INTEGRAL_TYPE_P (type)
    1966              : )
    1967              :     {
    1968         2011 :       {
    1969         2011 :  tree itype = TREE_TYPE (captures[2]);
    1970         2011 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail654;
    1971         2011 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail654;
    1972         2011 :           if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail654;
    1973         2011 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail654;
    1974         2011 :           {
    1975         2011 :             tree res_op0;
    1976         2011 :             {
    1977         2011 :               tree _o1[2], _r1;
    1978         2011 :               _o1[0] = captures[2];
    1979         2011 :               {
    1980         2011 :                 tree _o2[1], _r2;
    1981         2011 :                 _o2[0] = captures[0];
    1982         2011 :                 if (TREE_TYPE (_o2[0]) != itype)
    1983              :                   {
    1984         2011 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
    1985              :                   }
    1986              :                 else
    1987              :                   _r2 = _o2[0];
    1988         2011 :                 _o1[1] = _r2;
    1989              :               }
    1990         2011 :               _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1991         2011 :               res_op0 = _r1;
    1992              :             }
    1993         2011 :             tree _r;
    1994         2011 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1995         2011 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 541, __FILE__, __LINE__, true);
    1996         2011 :             return _r;
    1997              :           }
    1998              : next_after_fail654:;
    1999              :       }
    2000              :     }
    2001              :   return NULL_TREE;
    2002              : }
    2003              : 
    2004              : tree
    2005          974 : generic_simplify_384 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2006              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2007              :  const enum tree_code ARG_UNUSED (op))
    2008              : {
    2009          974 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2010         1948 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2011         1948 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    2012              : )
    2013              :     {
    2014            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail667;
    2015            0 :       {
    2016            0 :         tree res_op0;
    2017            0 :         res_op0 = captures[0];
    2018            0 :         tree res_op1;
    2019            0 :         res_op1 = captures[2];
    2020            0 :         tree _r;
    2021            0 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2022            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    2023            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2024            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 554, __FILE__, __LINE__, true);
    2025            0 :         return _r;
    2026              :       }
    2027            0 : next_after_fail667:;
    2028              :     }
    2029              :   return NULL_TREE;
    2030              : }
    2031              : 
    2032              : tree
    2033            6 : generic_simplify_389 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2034              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2035              :  const enum tree_code ARG_UNUSED (minmax),
    2036              :  const enum tree_code ARG_UNUSED (cmp))
    2037              : {
    2038            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2039            6 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail673;
    2040            6 :   {
    2041            6 :     tree _r;
    2042            6 :     _r =  constant_boolean_node (cmp == GE_EXPR || cmp == LE_EXPR, type);
    2043            6 :     if (TREE_SIDE_EFFECTS (captures[0]))
    2044            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2045            6 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2046            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2047            6 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 560, __FILE__, __LINE__, true);
    2048              :     return _r;
    2049              :   }
    2050            0 : next_after_fail673:;
    2051            0 :   return NULL_TREE;
    2052              : }
    2053              : 
    2054              : tree
    2055         9026 : generic_simplify_399 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2056              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2057              :  const enum tree_code ARG_UNUSED (cmp))
    2058              : {
    2059         9026 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2060         9026 :   if (single_use (captures[0])
    2061         9026 :  && ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2062         9010 :  && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    2063              : )
    2064              :     {
    2065         6632 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail715;
    2066         6632 :       {
    2067         6632 :         tree res_op0;
    2068         6632 :         res_op0 = captures[2];
    2069         6632 :         tree res_op1;
    2070         6632 :         res_op1 = captures[1];
    2071         6632 :         tree _r;
    2072         6632 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2073         6632 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 585, __FILE__, __LINE__, true);
    2074         6632 :         return _r;
    2075              :       }
    2076            0 : next_after_fail715:;
    2077              :     }
    2078              :   return NULL_TREE;
    2079              : }
    2080              : 
    2081              : tree
    2082         1484 : generic_simplify_404 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2083              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2084              :  const enum tree_code ARG_UNUSED (cmp),
    2085              :  const enum tree_code ARG_UNUSED (neg_cmp))
    2086              : {
    2087         1484 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2088         1484 :   if (flag_unsafe_math_optimizations
    2089              : )
    2090              :     {
    2091            9 :       {
    2092            9 :  tree tem = const_binop (RDIV_EXPR, type, captures[2], captures[1]);
    2093            9 :           if (tem
    2094           27 :  && !(REAL_VALUE_ISINF (TREE_REAL_CST (tem))
    2095           15 :  || (real_zerop (tem) && !real_zerop (captures[1])))
    2096              : )
    2097              :             {
    2098            3 :               if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[1]))
    2099              : )
    2100              :                 {
    2101            2 :                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail720;
    2102            2 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail720;
    2103            2 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail720;
    2104            2 :                   {
    2105            2 :                     tree res_op0;
    2106            2 :                     res_op0 = captures[0];
    2107            2 :                     tree res_op1;
    2108            2 :                     res_op1 =  tem;
    2109            2 :                     tree _r;
    2110            2 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2111            2 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 590, __FILE__, __LINE__, true);
    2112            2 :                     return _r;
    2113              :                   }
    2114              : next_after_fail720:;
    2115              :                 }
    2116              :               else
    2117              :                 {
    2118            1 :                   if (real_less (TREE_REAL_CST_PTR (captures[1]), &dconst0)
    2119              : )
    2120              :                     {
    2121            1 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail721;
    2122            1 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail721;
    2123            1 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail721;
    2124            1 :                       {
    2125            1 :                         tree res_op0;
    2126            1 :                         res_op0 = captures[0];
    2127            1 :                         tree res_op1;
    2128            1 :                         res_op1 =  tem;
    2129            1 :                         tree _r;
    2130            1 :                         _r = fold_build2_loc (loc, neg_cmp, type, res_op0, res_op1);
    2131            1 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 591, __FILE__, __LINE__, true);
    2132            1 :                         return _r;
    2133              :                       }
    2134              : next_after_fail721:;
    2135              :                     }
    2136              :                 }
    2137              :             }
    2138              :       }
    2139              :     }
    2140              :   return NULL_TREE;
    2141              : }
    2142              : 
    2143              : tree
    2144            0 : generic_simplify_413 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2145              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2146              :  const enum tree_code ARG_UNUSED (cmp),
    2147              :  const enum tree_code ARG_UNUSED (out))
    2148              : {
    2149            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2150            0 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    2151            0 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    2152              : )
    2153              :     {
    2154            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail736;
    2155            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail736;
    2156            0 :       {
    2157            0 :         tree res_op0;
    2158            0 :         {
    2159            0 :           tree _o1[1], _r1;
    2160            0 :           _o1[0] = captures[0];
    2161            0 :           _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
    2162            0 :           res_op0 = _r1;
    2163              :         }
    2164            0 :         tree res_op1;
    2165            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    2166            0 :         tree _r;
    2167            0 :         _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    2168            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 588, __FILE__, __LINE__, true);
    2169            0 :         return _r;
    2170              :       }
    2171              : next_after_fail736:;
    2172              :     }
    2173              :   return NULL_TREE;
    2174              : }
    2175              : 
    2176              : tree
    2177           43 : generic_simplify_418 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2178              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2179              :  const enum tree_code ARG_UNUSED (cmp),
    2180              :  const enum tree_code ARG_UNUSED (cmp2),
    2181              :  const enum tree_code ARG_UNUSED (cmp3),
    2182              :  const enum tree_code ARG_UNUSED (bit_op),
    2183              :  const combined_fn ARG_UNUSED (ffs))
    2184              : {
    2185           43 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2186           43 :   {
    2187           43 :  int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
    2188           43 :       if (integer_zerop (captures[2])
    2189              : )
    2190              :         {
    2191           11 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail741;
    2192           11 :           {
    2193           11 :             tree res_op0;
    2194           11 :             res_op0 = captures[1];
    2195           11 :             tree res_op1;
    2196           11 :             res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    2197           11 :             tree _r;
    2198           11 :             _r = fold_build2_loc (loc, cmp2, type, res_op0, res_op1);
    2199           11 :             if (TREE_SIDE_EFFECTS (captures[2]))
    2200            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2201           11 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 607, __FILE__, __LINE__, true);
    2202           27 :             return _r;
    2203              :           }
    2204            0 : next_after_fail741:;
    2205              :         }
    2206              :       else
    2207              :         {
    2208           32 :           if (tree_int_cst_sgn (captures[2]) < 0
    2209              : )
    2210              :             {
    2211            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail742;
    2212            0 :               {
    2213            0 :                 tree _r;
    2214            0 :                 _r =  constant_boolean_node (cmp == GT_EXPR ? true : false, type);
    2215            0 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    2216            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2217            0 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    2218            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2219            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 608, __FILE__, __LINE__, true);
    2220            0 :                 return _r;
    2221              :               }
    2222            0 : next_after_fail742:;
    2223              :             }
    2224              :           else
    2225              :             {
    2226           32 :               if (wi::to_widest (captures[2]) >= prec
    2227              : )
    2228              :                 {
    2229           14 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail743;
    2230           14 :                   {
    2231           14 :                     tree _r;
    2232           14 :                     _r =  constant_boolean_node (cmp == GT_EXPR ? false : true, type);
    2233           14 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    2234            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2235           14 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    2236            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2237           14 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 609, __FILE__, __LINE__, true);
    2238           14 :                     return _r;
    2239              :                   }
    2240            0 : next_after_fail743:;
    2241              :                 }
    2242              :               else
    2243              :                 {
    2244           18 :                   if (wi::to_widest (captures[2]) == prec - 1
    2245              : )
    2246              :                     {
    2247            2 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail744;
    2248            2 :                       {
    2249            2 :                         tree res_op0;
    2250            2 :                         res_op0 = captures[1];
    2251            2 :                         tree res_op1;
    2252            2 :                         res_op1 =  wide_int_to_tree (TREE_TYPE (captures[1]),
    2253            2 :  wi::shifted_mask (prec - 1, 1,
    2254              :  false, prec));
    2255            2 :                         tree _r;
    2256            2 :                         _r = fold_build2_loc (loc, cmp3, type, res_op0, res_op1);
    2257            2 :                         if (TREE_SIDE_EFFECTS (captures[2]))
    2258            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2259            2 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 610, __FILE__, __LINE__, true);
    2260            2 :                         return _r;
    2261              :                       }
    2262            0 : next_after_fail744:;
    2263              :                     }
    2264              :                   else
    2265              :                     {
    2266           16 :                       if (single_use (captures[0])
    2267              : )
    2268              :                         {
    2269           16 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail745;
    2270           16 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail745;
    2271           16 :                           {
    2272           16 :                             if (! tree_invariant_p (captures[1])) goto next_after_fail745;
    2273            0 :                             tree res_op0;
    2274            0 :                             {
    2275            0 :                               tree _o1[2], _r1;
    2276            0 :                               _o1[0] = unshare_expr (captures[1]);
    2277            0 :                               _o1[1] =  build_zero_cst (TREE_TYPE (captures[1]));
    2278            0 :                               _r1 = fold_build2_loc (loc, cmp2, type, _o1[0], _o1[1]);
    2279            0 :                               res_op0 = _r1;
    2280              :                             }
    2281            0 :                             tree res_op1;
    2282            0 :                             {
    2283            0 :                               tree _o1[2], _r1;
    2284            0 :                               {
    2285            0 :                                 tree _o2[2], _r2;
    2286            0 :                                 _o2[0] = captures[1];
    2287            0 :                                 _o2[1] =  wide_int_to_tree (TREE_TYPE (captures[1]),
    2288            0 :  wi::mask (tree_to_uhwi (captures[2]),
    2289              :  false, prec));
    2290            0 :                                 _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    2291            0 :                                 _o1[0] = _r2;
    2292              :                               }
    2293            0 :                               _o1[1] =  build_zero_cst (TREE_TYPE (captures[1]));
    2294            0 :                               _r1 = fold_build2_loc (loc, cmp3, type, _o1[0], _o1[1]);
    2295            0 :                               res_op1 = _r1;
    2296              :                             }
    2297            0 :                             tree _r;
    2298            0 :                             _r = fold_build2_loc (loc, bit_op, type, res_op0, res_op1);
    2299            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 611, __FILE__, __LINE__, true);
    2300            0 :                             return _r;
    2301              :                           }
    2302           16 : next_after_fail745:;
    2303              :                         }
    2304              :                     }
    2305              :                 }
    2306              :             }
    2307              :         }
    2308              :   }
    2309           16 :   return NULL_TREE;
    2310              : }
    2311              : 
    2312              : tree
    2313      2642128 : generic_simplify_439 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2314              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2315              :  const enum tree_code ARG_UNUSED (op))
    2316              : {
    2317      2642128 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2318      2642128 :   if (INTEGRAL_TYPE_P (type)
    2319      2080178 :  && op != MULT_EXPR
    2320      2080178 :  && op != RDIV_EXPR
    2321      1291176 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2322      1291176 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2323      1291176 :  && type_has_mode_precision_p (TREE_TYPE (captures[2]))
    2324      1290797 :  && type_has_mode_precision_p (TREE_TYPE (captures[4]))
    2325      1290027 :  && type_has_mode_precision_p (type)
    2326      1286174 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    2327            0 :  && types_match (captures[2], type)
    2328      2642128 :  && (types_match (captures[2], captures[4])
    2329            0 :  || poly_int_tree_p (captures[3]))
    2330              : )
    2331              :     {
    2332            0 :       if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
    2333              : )
    2334              :         {
    2335            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail781;
    2336            0 :           {
    2337            0 :             tree res_op0;
    2338            0 :             res_op0 = captures[2];
    2339            0 :             tree res_op1;
    2340            0 :             {
    2341            0 :               tree _o1[1], _r1;
    2342            0 :               _o1[0] = captures[4];
    2343            0 :               if (TREE_TYPE (_o1[0]) != type)
    2344              :                 {
    2345            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2346              :                 }
    2347              :               else
    2348              :                 _r1 = _o1[0];
    2349            0 :               res_op1 = _r1;
    2350              :             }
    2351            0 :             tree _r;
    2352            0 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2353            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 637, __FILE__, __LINE__, true);
    2354            0 :             return _r;
    2355              :           }
    2356            0 : next_after_fail781:;
    2357              :         }
    2358              :       else
    2359              :         {
    2360            0 :           {
    2361            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
    2362            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail782;
    2363            0 :               {
    2364            0 :                 tree res_op0;
    2365            0 :                 {
    2366            0 :                   tree _o1[2], _r1;
    2367            0 :                   {
    2368            0 :                     tree _o2[1], _r2;
    2369            0 :                     _o2[0] = captures[2];
    2370            0 :                     if (TREE_TYPE (_o2[0]) != utype)
    2371              :                       {
    2372            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2373              :                       }
    2374              :                     else
    2375              :                       _r2 = _o2[0];
    2376            0 :                     _o1[0] = _r2;
    2377              :                   }
    2378            0 :                   {
    2379            0 :                     tree _o2[1], _r2;
    2380            0 :                     _o2[0] = captures[4];
    2381            0 :                     if (TREE_TYPE (_o2[0]) != utype)
    2382              :                       {
    2383            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2384              :                       }
    2385              :                     else
    2386              :                       _r2 = _o2[0];
    2387            0 :                     _o1[1] = _r2;
    2388              :                   }
    2389            0 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2390            0 :                   res_op0 = _r1;
    2391              :                 }
    2392            0 :                 tree _r;
    2393            0 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2394            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 638, __FILE__, __LINE__, true);
    2395            0 :                 return _r;
    2396              :               }
    2397            0 : next_after_fail782:;
    2398              :           }
    2399              :         }
    2400              :     }
    2401              :   else
    2402              :     {
    2403      2627688 :       if (FLOAT_TYPE_P (type)
    2404      2656568 :  && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    2405        14440 :  == DECIMAL_FLOAT_TYPE_P (type)
    2406              : )
    2407              :         {
    2408        14417 :           {
    2409        14417 :  tree arg0 = strip_float_extensions (captures[2]);
    2410        14417 :  tree arg1 = strip_float_extensions (captures[4]);
    2411        14417 :  tree itype = TREE_TYPE (captures[0]);
    2412        14417 :  tree ty1 = TREE_TYPE (arg0);
    2413        14417 :  tree ty2 = TREE_TYPE (arg1);
    2414        14417 :  enum tree_code code = TREE_CODE (itype);
    2415            0 :               if (FLOAT_TYPE_P (ty1)
    2416        14417 :  && FLOAT_TYPE_P (ty2)
    2417              : )
    2418              :                 {
    2419        14417 :                   {
    2420        14417 :  tree newtype = type;
    2421        14417 :  if (TYPE_MODE (ty1) == SDmode
    2422        14408 :  || TYPE_MODE (ty2) == SDmode
    2423        28825 :  || TYPE_MODE (type) == SDmode)
    2424            9 :  newtype = dfloat32_type_node;
    2425        14417 :  if (TYPE_MODE (ty1) == DDmode
    2426        14411 :  || TYPE_MODE (ty2) == DDmode
    2427        28828 :  || TYPE_MODE (type) == DDmode)
    2428            6 :  newtype = dfloat64_type_node;
    2429        14417 :  if (TYPE_MODE (ty1) == TDmode
    2430        14417 :  || TYPE_MODE (ty2) == TDmode
    2431        28834 :  || TYPE_MODE (type) == TDmode)
    2432           15 :  newtype = dfloat128_type_node;
    2433        14417 :                       if ((newtype == dfloat32_type_node
    2434        14417 :  || newtype == dfloat64_type_node
    2435        14417 :  || newtype == dfloat128_type_node)
    2436           15 :  && newtype == type
    2437        14423 :  && types_match (newtype, type)
    2438              : )
    2439              :                         {
    2440            6 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail783;
    2441            0 :                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail783;
    2442            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail783;
    2443            0 :                           {
    2444            0 :                             tree res_op0;
    2445            0 :                             {
    2446            0 :                               tree _o1[1], _r1;
    2447            0 :                               _o1[0] = captures[2];
    2448            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2449              :                                 {
    2450            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2451              :                                 }
    2452              :                               else
    2453              :                                 _r1 = _o1[0];
    2454            0 :                               res_op0 = _r1;
    2455              :                             }
    2456            0 :                             tree res_op1;
    2457            0 :                             {
    2458            0 :                               tree _o1[1], _r1;
    2459            0 :                               _o1[0] = captures[4];
    2460            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2461              :                                 {
    2462            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2463              :                                 }
    2464              :                               else
    2465              :                                 _r1 = _o1[0];
    2466            0 :                               res_op1 = _r1;
    2467              :                             }
    2468            0 :                             tree _r;
    2469            0 :                             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2470            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 639, __FILE__, __LINE__, true);
    2471            0 :                             return _r;
    2472              :                           }
    2473              : next_after_fail783:;
    2474              :                         }
    2475              :                       else
    2476              :                         {
    2477        14411 :                           {
    2478        14411 :  if (element_precision (ty1) > element_precision (newtype))
    2479          749 :  newtype = ty1;
    2480        14411 :  if (element_precision (ty2) > element_precision (newtype))
    2481            2 :  newtype = ty2;
    2482        14411 :                               if (element_precision (newtype) < element_precision (itype)
    2483        13106 :  && (!VECTOR_MODE_P (TYPE_MODE (newtype))
    2484            0 :  || target_supports_op_p (newtype, op, optab_default))
    2485        13106 :  && (flag_unsafe_math_optimizations
    2486        13094 :  || (element_precision (newtype) == element_precision (type)
    2487        13090 :  && real_can_shorten_arithmetic (element_mode (itype),
    2488              :  element_mode (type))
    2489         5070 :  && !excess_precision_type (newtype)))
    2490        15084 :  && !types_match (itype, newtype)
    2491              : )
    2492              :                                 {
    2493          673 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail784;
    2494          673 :                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail784;
    2495          655 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail784;
    2496          655 :                                   {
    2497          655 :                                     tree res_op0;
    2498          655 :                                     {
    2499          655 :                                       tree _o1[2], _r1;
    2500          655 :                                       {
    2501          655 :                                         tree _o2[1], _r2;
    2502          655 :                                         _o2[0] = captures[2];
    2503          655 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2504              :                                           {
    2505          655 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2506              :                                           }
    2507              :                                         else
    2508              :                                           _r2 = _o2[0];
    2509          655 :                                         _o1[0] = _r2;
    2510              :                                       }
    2511          655 :                                       {
    2512          655 :                                         tree _o2[1], _r2;
    2513          655 :                                         _o2[0] = captures[4];
    2514          655 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2515              :                                           {
    2516          604 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2517              :                                           }
    2518              :                                         else
    2519              :                                           _r2 = _o2[0];
    2520          655 :                                         _o1[1] = _r2;
    2521              :                                       }
    2522          655 :                                       _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2523          655 :                                       res_op0 = _r1;
    2524              :                                     }
    2525          655 :                                     tree _r;
    2526          655 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2527          655 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 640, __FILE__, __LINE__, true);
    2528          655 :                                     return _r;
    2529              :                                   }
    2530              : next_after_fail784:;
    2531              :                                 }
    2532              :                           }
    2533              :                         }
    2534              :                   }
    2535              :                 }
    2536              :           }
    2537              :         }
    2538              :     }
    2539              :   return NULL_TREE;
    2540              : }
    2541              : 
    2542              : tree
    2543           13 : generic_simplify_471 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2544              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2545              : {
    2546           13 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2547           13 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail819;
    2548           13 :   {
    2549           13 :     tree _r;
    2550           13 :     _r =  build_zero_cst (type);
    2551           13 :     if (TREE_SIDE_EFFECTS (captures[0]))
    2552            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2553           13 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 670, __FILE__, __LINE__, true);
    2554              :     return _r;
    2555              :   }
    2556            0 : next_after_fail819:;
    2557            0 :   return NULL_TREE;
    2558              : }
    2559              : 
    2560              : tree
    2561          202 : generic_simplify_478 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2562              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2563              :  const enum tree_code ARG_UNUSED (code2),
    2564              :  const enum tree_code ARG_UNUSED (code1))
    2565              : {
    2566          202 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2567          202 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
    2568            2 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2569          202 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2570            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
    2571            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
    2572            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
    2573          200 :  && bitwise_equal_p (captures[2], captures[5]))
    2574              : )
    2575              :     {
    2576            2 :       {
    2577            2 :  bool one_before = false;
    2578            2 :  bool one_after = false;
    2579            2 :  int cmp = 0;
    2580            2 :  bool allbits = true;
    2581            2 :  if (TREE_CODE (captures[2]) == INTEGER_CST
    2582            2 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2583              :  {
    2584            2 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
    2585            2 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
    2586            2 :  auto t2 = wi::to_wide (captures[5]);
    2587            2 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
    2588            2 :  if (cmp < 0
    2589            2 :  && t1 == t2 - 1)
    2590              :  one_before = true;
    2591            2 :  if (cmp > 0
    2592            2 :  && t1 == t2 + 1)
    2593              :  one_after = true;
    2594              :  }
    2595            2 :  bool val;
    2596            2 :  switch (code2)
    2597              :  {
    2598            0 :  case EQ_EXPR: val = (cmp == 0); break;
    2599            2 :  case NE_EXPR: val = (cmp != 0); break;
    2600            0 :  case LT_EXPR: val = (cmp < 0); break;
    2601            0 :  case GT_EXPR: val = (cmp > 0); break;
    2602            0 :  case LE_EXPR: val = (cmp <= 0); break;
    2603            0 :  case GE_EXPR: val = (cmp >= 0); break;
    2604            0 :  default: gcc_unreachable ();
    2605              :  }
    2606            2 :           if (code1 == EQ_EXPR && val
    2607              : )
    2608              :             {
    2609            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail834;
    2610            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail834;
    2611            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail834;
    2612            0 :               {
    2613            0 :                 tree _r;
    2614            0 :                 _r = captures[0];
    2615            0 :                 if (TREE_SIDE_EFFECTS (captures[4]))
    2616            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2617            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
    2618            0 :                 return _r;
    2619              :               }
    2620              : next_after_fail834:;
    2621              :             }
    2622              :           else
    2623              :             {
    2624            2 :               if (code1 == EQ_EXPR && !val
    2625              : )
    2626              :                 {
    2627            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail835;
    2628            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail835;
    2629            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail835;
    2630            0 :                   {
    2631            0 :                     tree _r;
    2632            0 :                     _r =  constant_boolean_node (false, type);
    2633            0 :                     if (TREE_SIDE_EFFECTS (captures[4]))
    2634            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2635            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 678, __FILE__, __LINE__, true);
    2636            0 :                     return _r;
    2637              :                   }
    2638              : next_after_fail835:;
    2639              :                 }
    2640              :               else
    2641              :                 {
    2642            2 :                   if (code1 == NE_EXPR && !val && allbits
    2643              : )
    2644              :                     {
    2645            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail836;
    2646            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail836;
    2647            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail836;
    2648            0 :                       {
    2649            0 :                         tree _r;
    2650            0 :                         _r = captures[3];
    2651            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
    2652            0 :                         return _r;
    2653              :                       }
    2654              : next_after_fail836:;
    2655              :                     }
    2656              :                   else
    2657              :                     {
    2658            2 :                       if ((code1 == NE_EXPR
    2659            2 :  && code2 == GE_EXPR
    2660            0 :  && cmp == 0
    2661            0 :  && allbits)
    2662            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2663            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2664            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2665              : )
    2666              :                         {
    2667            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail837;
    2668            0 :                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail837;
    2669            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail837;
    2670            0 :                           {
    2671            0 :                             tree res_op0;
    2672            0 :                             res_op0 = captures[4];
    2673            0 :                             tree res_op1;
    2674            0 :                             {
    2675            0 :                               tree _o1[1], _r1;
    2676            0 :                               _o1[0] = captures[2];
    2677            0 :                               if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2678              :                                 {
    2679            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2680              :                                 }
    2681              :                               else
    2682              :                                 _r1 = _o1[0];
    2683            0 :                               res_op1 = _r1;
    2684              :                             }
    2685            0 :                             tree _r;
    2686            0 :                             _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2687            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 680, __FILE__, __LINE__, true);
    2688            0 :                             return _r;
    2689              :                           }
    2690              : next_after_fail837:;
    2691              :                         }
    2692              :                       else
    2693              :                         {
    2694            2 :                           if ((code1 == NE_EXPR
    2695            2 :  && code2 == LE_EXPR
    2696            0 :  && cmp == 0
    2697            0 :  && allbits)
    2698            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2699            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2700            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2701              : )
    2702              :                             {
    2703            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail838;
    2704            0 :                               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail838;
    2705            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail838;
    2706            0 :                               {
    2707            0 :                                 tree res_op0;
    2708            0 :                                 res_op0 = captures[4];
    2709            0 :                                 tree res_op1;
    2710            0 :                                 {
    2711            0 :                                   tree _o1[1], _r1;
    2712            0 :                                   _o1[0] = captures[2];
    2713            0 :                                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2714              :                                     {
    2715            0 :                                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2716              :                                     }
    2717              :                                   else
    2718              :                                     _r1 = _o1[0];
    2719            0 :                                   res_op1 = _r1;
    2720              :                                 }
    2721            0 :                                 tree _r;
    2722            0 :                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2723            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 681, __FILE__, __LINE__, true);
    2724            0 :                                 return _r;
    2725              :                               }
    2726              : next_after_fail838:;
    2727              :                             }
    2728              :                           else
    2729              :                             {
    2730            2 :                               if ((code1 == NE_EXPR
    2731            2 :  && code2 == GT_EXPR
    2732              :  && one_after
    2733            0 :  && allbits)
    2734            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2735            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2736            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2737              : )
    2738              :                                 {
    2739            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail839;
    2740            0 :                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail839;
    2741            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail839;
    2742            0 :                                   {
    2743            0 :                                     tree res_op0;
    2744            0 :                                     res_op0 = captures[4];
    2745            0 :                                     tree res_op1;
    2746            0 :                                     {
    2747            0 :                                       tree _o1[1], _r1;
    2748            0 :                                       _o1[0] = captures[2];
    2749            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2750              :                                         {
    2751            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2752              :                                         }
    2753              :                                       else
    2754              :                                         _r1 = _o1[0];
    2755            0 :                                       res_op1 = _r1;
    2756              :                                     }
    2757            0 :                                     tree _r;
    2758            0 :                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2759            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 682, __FILE__, __LINE__, true);
    2760            0 :                                     return _r;
    2761              :                                   }
    2762              : next_after_fail839:;
    2763              :                                 }
    2764              :                               else
    2765              :                                 {
    2766            2 :                                   if ((code1 == NE_EXPR
    2767            2 :  && code2 == LT_EXPR
    2768              :  && one_before
    2769            0 :  && allbits)
    2770            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2771            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2772            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2773              : )
    2774              :                                     {
    2775            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail840;
    2776            0 :                                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail840;
    2777            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail840;
    2778            0 :                                       {
    2779            0 :                                         tree res_op0;
    2780            0 :                                         res_op0 = captures[4];
    2781            0 :                                         tree res_op1;
    2782            0 :                                         {
    2783            0 :                                           tree _o1[1], _r1;
    2784            0 :                                           _o1[0] = captures[2];
    2785            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2786              :                                             {
    2787            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2788              :                                             }
    2789              :                                           else
    2790              :                                             _r1 = _o1[0];
    2791            0 :                                           res_op1 = _r1;
    2792              :                                         }
    2793            0 :                                         tree _r;
    2794            0 :                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2795            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 683, __FILE__, __LINE__, true);
    2796            0 :                                         return _r;
    2797              :                                       }
    2798              : next_after_fail840:;
    2799              :                                     }
    2800              :                                 }
    2801              :                             }
    2802              :                         }
    2803              :                     }
    2804              :                 }
    2805              :             }
    2806              :       }
    2807              :     }
    2808              :   return NULL_TREE;
    2809              : }
    2810              : 
    2811              : tree
    2812            0 : generic_simplify_510 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2813              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2814              : {
    2815            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2816            0 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    2817              : )
    2818              :     {
    2819            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail902;
    2820            0 :       {
    2821            0 :         tree res_op0;
    2822            0 :         {
    2823            0 :           tree _o1[2], _r1;
    2824            0 :           _o1[0] = captures[0];
    2825            0 :           _o1[1] = captures[1];
    2826            0 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2827            0 :           res_op0 = _r1;
    2828              :         }
    2829            0 :         tree _r;
    2830            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2831            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 714, __FILE__, __LINE__, true);
    2832            0 :         return _r;
    2833              :       }
    2834            0 : next_after_fail902:;
    2835              :     }
    2836              :   return NULL_TREE;
    2837              : }
    2838              : 
    2839              : tree
    2840        39308 : generic_simplify_516 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2841              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2842              : {
    2843        39308 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2844        39308 :   if (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
    2845        39308 :  && !HONOR_SIGNED_ZEROS (type)
    2846              : )
    2847              :     {
    2848        39308 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail909;
    2849        39308 :       {
    2850        39308 :         tree res_op0;
    2851        39308 :         {
    2852        39308 :           tree _o1[1], _r1;
    2853        39308 :           _o1[0] = captures[1];
    2854        39308 :           _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2855        39308 :           res_op0 = _r1;
    2856              :         }
    2857        39308 :         tree res_op1;
    2858        39308 :         res_op1 = captures[0];
    2859        39308 :         tree _r;
    2860        39308 :         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    2861        39308 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 719, __FILE__, __LINE__, true);
    2862        39308 :         return _r;
    2863              :       }
    2864            0 : next_after_fail909:;
    2865              :     }
    2866              :   return NULL_TREE;
    2867              : }
    2868              : 
    2869              : tree
    2870           16 : generic_simplify_522 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2871              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2872              :  const combined_fn ARG_UNUSED (fmas))
    2873              : {
    2874           16 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2875           16 :   if (canonicalize_math_after_vectorization_p ()
    2876              : )
    2877              :     {
    2878              :       if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (captures[0])
    2879              : )
    2880              :         {
    2881              :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail916;
    2882              :           {
    2883              :             tree res_op0;
    2884              :             res_op0 = captures[1];
    2885              :             tree res_op1;
    2886              :             res_op1 = captures[2];
    2887              :             tree res_op2;
    2888              :             res_op2 = captures[3];
    2889              :             tree _r;
    2890              :             _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
    2891              :             if (!_r)
    2892              :               goto next_after_fail916;
    2893              :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 726, __FILE__, __LINE__, true);
    2894              :             return _r;
    2895              :           }
    2896           16 : next_after_fail916:;
    2897              :         }
    2898              :     }
    2899           16 :   return NULL_TREE;
    2900              : }
    2901              : 
    2902              : tree
    2903            0 : generic_simplify_535 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2904              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2905              :  const enum tree_code ARG_UNUSED (minmax),
    2906              :  const enum tree_code ARG_UNUSED (cmp))
    2907              : {
    2908            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2909            0 :   {
    2910            0 :  poly_int64 off0, off1;
    2911            0 :  tree base0, base1;
    2912            0 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
    2913              :  off0, off1,
    2914              : 1
    2915              : );
    2916            0 :       if (equal == 1
    2917              : )
    2918              :         {
    2919            0 :           if (minmax == MIN_EXPR
    2920              : )
    2921              :             {
    2922            0 :               if (known_le (off0, off1)
    2923              : )
    2924              :                 {
    2925            0 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail937;
    2926            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail937;
    2927            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail937;
    2928            0 :                   {
    2929            0 :                     tree _r;
    2930            0 :                     _r = captures[0];
    2931            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 738, __FILE__, __LINE__, true);
    2932            0 :                     return _r;
    2933              :                   }
    2934            0 : next_after_fail937:;
    2935              :                 }
    2936              :               else
    2937              :                 {
    2938            0 :                   if (known_gt (off0, off1)
    2939              : )
    2940              :                     {
    2941            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail938;
    2942            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail938;
    2943            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail938;
    2944            0 :                       {
    2945            0 :                         tree _r;
    2946            0 :                         _r = captures[2];
    2947            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 739, __FILE__, __LINE__, true);
    2948            0 :                         return _r;
    2949              :                       }
    2950            0 : next_after_fail938:;
    2951              :                     }
    2952              :                 }
    2953              :             }
    2954              :           else
    2955              :             {
    2956            0 :               if (known_ge (off0, off1)
    2957              : )
    2958              :                 {
    2959            0 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail939;
    2960            0 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail939;
    2961            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail939;
    2962            0 :                   {
    2963            0 :                     tree _r;
    2964            0 :                     _r = captures[0];
    2965            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 740, __FILE__, __LINE__, true);
    2966            0 :                     return _r;
    2967              :                   }
    2968            0 : next_after_fail939:;
    2969              :                 }
    2970              :               else
    2971              :                 {
    2972            0 :                   if (known_lt (off0, off1)
    2973              : )
    2974              :                     {
    2975            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail940;
    2976            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail940;
    2977            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail940;
    2978            0 :                       {
    2979            0 :                         tree _r;
    2980            0 :                         _r = captures[2];
    2981            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 741, __FILE__, __LINE__, true);
    2982            0 :                         return _r;
    2983              :                       }
    2984            0 : next_after_fail940:;
    2985              :                     }
    2986              :                 }
    2987              :             }
    2988              :         }
    2989              :   }
    2990            0 :   return NULL_TREE;
    2991              : }
    2992              : 
    2993              : tree
    2994            0 : generic_simplify_556 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2995              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2996              :  const combined_fn ARG_UNUSED (cond_len_op))
    2997              : {
    2998            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2999            0 :   {
    3000            0 :  tree op_type = TREE_TYPE (captures[4]);
    3001            0 :       if (element_precision (type) == element_precision (op_type)
    3002              : )
    3003              :         {
    3004            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail964;
    3005            0 :           {
    3006            0 :             tree res_op0;
    3007            0 :             {
    3008            0 :               tree _o1[7], _r1;
    3009            0 :               _o1[0] = captures[0];
    3010            0 :               _o1[1] = captures[1];
    3011            0 :               _o1[2] = captures[2];
    3012            0 :               _o1[3] = captures[3];
    3013            0 :               {
    3014            0 :                 tree _o2[1], _r2;
    3015            0 :                 _o2[0] = captures[7];
    3016            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    3017              :                   {
    3018            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    3019              :                   }
    3020              :                 else
    3021              :                   _r2 = _o2[0];
    3022            0 :                 _o1[4] = _r2;
    3023              :               }
    3024            0 :               _o1[5] = captures[5];
    3025            0 :               _o1[6] = captures[6];
    3026            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 7, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5], _o1[6]);
    3027            0 :               if (!_r1)
    3028            0 :                 goto next_after_fail964;
    3029            0 :               res_op0 = _r1;
    3030              :             }
    3031            0 :             tree _r;
    3032            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3033            0 :             if (TREE_SIDE_EFFECTS (captures[4]))
    3034            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3035            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 756, __FILE__, __LINE__, true);
    3036            0 :             return _r;
    3037              :           }
    3038              : next_after_fail964:;
    3039              :         }
    3040              :   }
    3041              :   return NULL_TREE;
    3042              : }
    3043              : 
    3044              : tree
    3045      2409133 : generic_simplify_567 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3046              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    3047              :  const enum tree_code ARG_UNUSED (cmp))
    3048              : {
    3049      2409133 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3050      2409133 :   if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
    3051      2409133 :  && (cmp != LTGT_EXPR || ! flag_trapping_math)
    3052              : )
    3053              :     {
    3054           10 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail978;
    3055           10 :       {
    3056           10 :         tree _r;
    3057           20 :         _r =  constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR
    3058           10 :  ? false : true, type);
    3059           10 :         if (TREE_SIDE_EFFECTS (captures[0]))
    3060            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3061           10 :         if (TREE_SIDE_EFFECTS (captures[1]))
    3062            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3063           10 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 770, __FILE__, __LINE__, true);
    3064           10 :         return _r;
    3065              :       }
    3066            0 : next_after_fail978:;
    3067              :     }
    3068              :   return NULL_TREE;
    3069              : }
    3070              : 
    3071              : tree
    3072            0 : generic_simplify_577 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3073              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3074              :  const combined_fn ARG_UNUSED (sinhs),
    3075              :  const combined_fn ARG_UNUSED (atanhs),
    3076              :  const combined_fn ARG_UNUSED (sqrts))
    3077              : {
    3078            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3079            0 :   if (!flag_errno_math
    3080              : )
    3081              :     {
    3082            0 :       {
    3083            0 :  tree t_one = build_one_cst (type);
    3084            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail988;
    3085            0 :           {
    3086            0 :             if (! tree_invariant_p (captures[1])) goto next_after_fail988;
    3087            0 :             tree res_op0;
    3088            0 :             res_op0 = unshare_expr (captures[1]);
    3089            0 :             tree res_op1;
    3090            0 :             {
    3091            0 :               tree _o1[1], _r1;
    3092            0 :               {
    3093            0 :                 tree _o2[2], _r2;
    3094            0 :                 {
    3095            0 :                   tree _o3[2], _r3;
    3096            0 :                   _o3[0] =  t_one;
    3097            0 :                   _o3[1] = unshare_expr (captures[1]);
    3098            0 :                   _r3 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    3099            0 :                   _o2[0] = _r3;
    3100              :                 }
    3101            0 :                 {
    3102            0 :                   tree _o3[2], _r3;
    3103            0 :                   _o3[0] =  t_one;
    3104            0 :                   _o3[1] = captures[1];
    3105            0 :                   _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    3106            0 :                   _o2[1] = _r3;
    3107              :                 }
    3108            0 :                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    3109            0 :                 _o1[0] = _r2;
    3110              :               }
    3111            0 :               _r1 = maybe_build_call_expr_loc (loc, sqrts, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3112            0 :               if (!_r1)
    3113            0 :                 goto next_after_fail988;
    3114            0 :               res_op1 = _r1;
    3115              :             }
    3116            0 :             tree _r;
    3117            0 :             _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    3118            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 780, __FILE__, __LINE__, true);
    3119            0 :             return _r;
    3120              :           }
    3121              : next_after_fail988:;
    3122              :       }
    3123              :     }
    3124              :   return NULL_TREE;
    3125              : }
    3126              : 
    3127              : tree
    3128            0 : generic_simplify_592 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3129              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3130              :  const combined_fn ARG_UNUSED (SIGNBIT))
    3131              : {
    3132            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3133            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1003;
    3134            0 :   {
    3135            0 :     tree _r;
    3136            0 :     _r =  integer_zero_node;
    3137            0 :     if (TREE_SIDE_EFFECTS (captures[0]))
    3138            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3139            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 795, __FILE__, __LINE__, true);
    3140              :     return _r;
    3141              :   }
    3142            0 : next_after_fail1003:;
    3143            0 :   return NULL_TREE;
    3144              : }
    3145              : 
    3146              : tree
    3147            0 : generic_simplify_597 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3148              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3149              :  const combined_fn ARG_UNUSED (fmas))
    3150              : {
    3151            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3152            0 :   if (canonicalize_math_after_vectorization_p ()
    3153              : )
    3154              :     {
    3155              :       {
    3156              :  tree t = TREE_TYPE (captures[0]);
    3157              :           if ((!ANY_INTEGRAL_TYPE_P (type)
    3158              :  || TYPE_UNSIGNED (type)
    3159              :  || !TYPE_OVERFLOW_SANITIZED (type))
    3160              :  && (!ANY_INTEGRAL_TYPE_P (t)
    3161              :  || TYPE_UNSIGNED (t)
    3162              :  || !TYPE_OVERFLOW_SANITIZED (type))
    3163              : )
    3164              :             {
    3165              :               {
    3166              :  tree utype = unsigned_type_for (type);
    3167              :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1008;
    3168              :                   {
    3169              :                     tree res_op0;
    3170              :                     {
    3171              :                       tree _o1[3], _r1;
    3172              :                       {
    3173              :                         tree _o2[1], _r2;
    3174              :                         _o2[0] = captures[0];
    3175              :                         if (TREE_TYPE (_o2[0]) != utype)
    3176              :                           {
    3177              :                             _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    3178              :                           }
    3179              :                         else
    3180              :                           _r2 = _o2[0];
    3181              :                         _o1[0] = _r2;
    3182              :                       }
    3183              :                       {
    3184              :                         tree _o2[1], _r2;
    3185              :                         _o2[0] = captures[1];
    3186              :                         if (TREE_TYPE (_o2[0]) != utype)
    3187              :                           {
    3188              :                             _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    3189              :                           }
    3190              :                         else
    3191              :                           _r2 = _o2[0];
    3192              :                         _o1[1] = _r2;
    3193              :                       }
    3194              :                       {
    3195              :                         tree _o2[1], _r2;
    3196              :                         _o2[0] = captures[2];
    3197              :                         if (TREE_TYPE (_o2[0]) != utype)
    3198              :                           {
    3199              :                             _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    3200              :                           }
    3201              :                         else
    3202              :                           _r2 = _o2[0];
    3203              :                         _o1[2] = _r2;
    3204              :                       }
    3205              :                       _r1 = maybe_build_call_expr_loc (loc, CFN_FNMA, TREE_TYPE (_o1[0]), 3, _o1[0], _o1[1], _o1[2]);
    3206              :                       if (!_r1)
    3207              :                         goto next_after_fail1008;
    3208              :                       res_op0 = _r1;
    3209              :                     }
    3210              :                     tree _r;
    3211              :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3212              :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 800, __FILE__, __LINE__, true);
    3213              :                     return _r;
    3214              :                   }
    3215            0 : next_after_fail1008:;
    3216              :               }
    3217              :             }
    3218              :       }
    3219              :     }
    3220            0 :   return NULL_TREE;
    3221              : }
    3222              : 
    3223              : tree
    3224            0 : generic_simplify_619 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3225              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3226              :  const combined_fn ARG_UNUSED (bswap),
    3227              :  const combined_fn ARG_UNUSED (popcount))
    3228              : {
    3229            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3230            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3231            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3232              : )
    3233              :     {
    3234            0 :       {
    3235            0 :  tree type0 = TREE_TYPE (captures[0]);
    3236            0 :  tree type1 = TREE_TYPE (captures[1]);
    3237            0 :  unsigned int prec0 = TYPE_PRECISION (type0);
    3238            0 :  unsigned int prec1 = TYPE_PRECISION (type1);
    3239            0 :           if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
    3240              : )
    3241              :             {
    3242            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1030;
    3243            0 :               {
    3244            0 :                 tree res_op0;
    3245            0 :                 {
    3246            0 :                   tree _o1[1], _r1;
    3247            0 :                   {
    3248            0 :                     tree _o2[1], _r2;
    3249            0 :                     _o2[0] = captures[2];
    3250            0 :                     if (TREE_TYPE (_o2[0]) != type1)
    3251              :                       {
    3252            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
    3253              :                       }
    3254              :                     else
    3255              :                       _r2 = _o2[0];
    3256            0 :                     _o1[0] = _r2;
    3257              :                   }
    3258            0 :                   if (TREE_TYPE (_o1[0]) != type0)
    3259              :                     {
    3260            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3261              :                     }
    3262              :                   else
    3263              :                     _r1 = _o1[0];
    3264            0 :                   res_op0 = _r1;
    3265              :                 }
    3266            0 :                 tree _r;
    3267            0 :                 _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
    3268            0 :                 if (!_r)
    3269            0 :                   goto next_after_fail1030;
    3270            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 816, __FILE__, __LINE__, true);
    3271            0 :                 return _r;
    3272              :               }
    3273              : next_after_fail1030:;
    3274              :             }
    3275              :       }
    3276              :     }
    3277              :   return NULL_TREE;
    3278              : }
    3279              : 
    3280              : tree
    3281      2777901 : generic_simplify_ABS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3282              : {
    3283      2777901 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3284      2777901 :   switch (TREE_CODE (_p0))
    3285              :     {
    3286       213581 :     CASE_CONVERT:
    3287       213581 :       {
    3288       213581 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3289       213581 :         {
    3290       213581 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3291       427160 :           if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3292          913 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    3293          841 :  && element_precision (type) > element_precision (TREE_TYPE (captures[0]))
    3294       213807 :  && (!VECTOR_TYPE_P (type)
    3295            0 :  || target_supports_op_p (TREE_TYPE (captures[0]), ABSU_EXPR, optab_vector))
    3296              : )
    3297              :             {
    3298          226 :               {
    3299          226 :  tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
    3300          226 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1044;
    3301          226 :                   {
    3302          226 :                     tree res_op0;
    3303          226 :                     {
    3304          226 :                       tree _o1[1], _r1;
    3305          226 :                       _o1[0] = captures[0];
    3306          226 :                       _r1 = fold_build1_loc (loc, ABSU_EXPR, utype, _o1[0]);
    3307          226 :                       res_op0 = _r1;
    3308              :                     }
    3309          226 :                     tree _r;
    3310          226 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3311          226 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 829, __FILE__, __LINE__, true);
    3312          226 :                     return _r;
    3313              :                   }
    3314            0 : next_after_fail1044:;
    3315              :               }
    3316              :             }
    3317              :         }
    3318              :         break;
    3319              :       }
    3320           12 :     case ABS_EXPR:
    3321           12 :       {
    3322           12 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3323           12 :         {
    3324           12 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3325           12 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1045;
    3326           12 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1045;
    3327           12 :           {
    3328           12 :             tree _r;
    3329           12 :             _r = captures[0];
    3330           12 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 830, __FILE__, __LINE__, true);
    3331           12 :             return _r;
    3332              :           }
    3333            0 : next_after_fail1045:;
    3334              :         }
    3335            0 :         break;
    3336              :       }
    3337           57 :     case NEGATE_EXPR:
    3338           57 :       {
    3339           57 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3340           57 :         {
    3341           57 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3342           57 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1046;
    3343           57 :           {
    3344           57 :             tree res_op0;
    3345           57 :             res_op0 = captures[0];
    3346           57 :             tree _r;
    3347           57 :             _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    3348           57 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 831, __FILE__, __LINE__, true);
    3349      2777901 :             return _r;
    3350              :           }
    3351            0 : next_after_fail1046:;
    3352              :         }
    3353            0 :         break;
    3354              :       }
    3355          317 :     case PLUS_EXPR:
    3356          317 :       {
    3357          317 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3358          317 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3359          317 :         if (real_zerop (_q21))
    3360              :           {
    3361            3 :             {
    3362            3 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3363            3 :               tree res = generic_simplify_1 (loc, type, _p0, captures, PLUS_EXPR);
    3364            3 :               if (res) return res;
    3365              :             }
    3366              :           }
    3367              :         break;
    3368              :       }
    3369         7901 :     case MINUS_EXPR:
    3370         7901 :       {
    3371         7901 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3372         7901 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3373         7901 :         if (real_zerop (_q21))
    3374              :           {
    3375            0 :             {
    3376            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3377            0 :               tree res = generic_simplify_1 (loc, type, _p0, captures, MINUS_EXPR);
    3378            0 :               if (res) return res;
    3379              :             }
    3380              :           }
    3381              :         break;
    3382              :       }
    3383            0 :     case VEC_COND_EXPR:
    3384            0 :       {
    3385            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3386            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3387            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    3388            0 :         {
    3389            0 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3390            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1047;
    3391            0 :           {
    3392            0 :             tree res_op0;
    3393            0 :             res_op0 = captures[1];
    3394            0 :             tree res_op1;
    3395            0 :             {
    3396            0 :               tree _o1[1], _r1;
    3397            0 :               _o1[0] = captures[2];
    3398            0 :               _r1 = fold_build1_loc (loc, ABS_EXPR, type, _o1[0]);
    3399            0 :               if (EXPR_P (_r1))
    3400            0 :                 goto next_after_fail1047;
    3401            0 :               res_op1 = _r1;
    3402              :             }
    3403            0 :             tree res_op2;
    3404            0 :             {
    3405            0 :               tree _o1[1], _r1;
    3406            0 :               _o1[0] = captures[3];
    3407            0 :               _r1 = fold_build1_loc (loc, ABS_EXPR, type, _o1[0]);
    3408            0 :               if (EXPR_P (_r1))
    3409            0 :                 goto next_after_fail1047;
    3410            0 :               res_op2 = _r1;
    3411              :             }
    3412            0 :             tree _r;
    3413            0 :             _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    3414            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 832, __FILE__, __LINE__, true);
    3415            0 :             return _r;
    3416              :           }
    3417            0 : next_after_fail1047:;
    3418              :         }
    3419            0 :         break;
    3420              :       }
    3421          716 :     case CALL_EXPR:
    3422          716 :       switch (get_call_combined_fn (_p0))
    3423              :         {
    3424            0 :         case CFN_BUILT_IN_COPYSIGNF16:
    3425            0 :           if (call_expr_nargs (_p0) == 2)
    3426              :     {
    3427            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3428            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3429            0 :               {
    3430            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3431            0 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF16);
    3432            0 :                 if (res) return res;
    3433              :               }
    3434              :             }
    3435              :           break;
    3436            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    3437            0 :           if (call_expr_nargs (_p0) == 2)
    3438              :     {
    3439            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3440            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3441            0 :               {
    3442            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3443            0 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF32);
    3444            0 :                 if (res) return res;
    3445              :               }
    3446              :             }
    3447              :           break;
    3448            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    3449            0 :           if (call_expr_nargs (_p0) == 2)
    3450              :     {
    3451            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3452            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3453            0 :               {
    3454            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3455            0 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF64);
    3456            0 :                 if (res) return res;
    3457              :               }
    3458              :             }
    3459              :           break;
    3460            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    3461            0 :           if (call_expr_nargs (_p0) == 2)
    3462              :     {
    3463            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3464            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3465            0 :               {
    3466            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3467            0 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF128X);
    3468            0 :                 if (res) return res;
    3469              :               }
    3470              :             }
    3471              :           break;
    3472            0 :         case CFN_BUILT_IN_COPYSIGNF128:
    3473            0 :           if (call_expr_nargs (_p0) == 2)
    3474              :     {
    3475            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3476            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3477            0 :               {
    3478            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3479            0 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF128);
    3480            0 :                 if (res) return res;
    3481              :               }
    3482              :             }
    3483              :           break;
    3484            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    3485            0 :           if (call_expr_nargs (_p0) == 2)
    3486              :     {
    3487            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3488            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3489            0 :               {
    3490            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3491            0 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF32X);
    3492            0 :                 if (res) return res;
    3493              :               }
    3494              :             }
    3495              :           break;
    3496            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    3497            0 :           if (call_expr_nargs (_p0) == 2)
    3498              :     {
    3499            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3500            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3501            0 :               {
    3502            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3503            0 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF64X);
    3504            0 :                 if (res) return res;
    3505              :               }
    3506              :             }
    3507              :           break;
    3508            0 :         case CFN_BUILT_IN_COPYSIGN:
    3509            0 :           if (call_expr_nargs (_p0) == 2)
    3510              :     {
    3511            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3512            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3513            0 :               {
    3514            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3515            0 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGN);
    3516            0 :                 if (res) return res;
    3517              :               }
    3518              :             }
    3519              :           break;
    3520            1 :         case CFN_BUILT_IN_COPYSIGNF:
    3521            1 :           if (call_expr_nargs (_p0) == 2)
    3522              :     {
    3523            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3524            1 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3525            1 :               {
    3526            1 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3527            1 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNF);
    3528            1 :                 if (res) return res;
    3529              :               }
    3530              :             }
    3531              :           break;
    3532            0 :         case CFN_BUILT_IN_COPYSIGNL:
    3533            0 :           if (call_expr_nargs (_p0) == 2)
    3534              :     {
    3535            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3536            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3537            0 :               {
    3538            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3539            0 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_BUILT_IN_COPYSIGNL);
    3540            0 :                 if (res) return res;
    3541              :               }
    3542              :             }
    3543              :           break;
    3544            0 :         case CFN_COPYSIGN:
    3545            0 :           if (call_expr_nargs (_p0) == 2)
    3546              :     {
    3547            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3548            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3549            0 :               {
    3550            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3551            0 :                 tree res = generic_simplify_2 (loc, type, _p0, captures, CFN_COPYSIGN);
    3552            0 :                 if (res) return res;
    3553              :               }
    3554              :             }
    3555              :           break;
    3556              :         default:;
    3557              :         }
    3558              :       break;
    3559      2777603 :     default:;
    3560              :     }
    3561      2777603 : if (tree_expr_nonnegative_p (_p0))
    3562              :   {
    3563          548 :     {
    3564          548 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3565          548 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1048;
    3566          548 :       {
    3567          548 :         tree _r;
    3568          548 :         _r = captures[0];
    3569          548 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 833, __FILE__, __LINE__, true);
    3570          548 :         return _r;
    3571              :       }
    3572            0 : next_after_fail1048:;
    3573              :     }
    3574              :   }
    3575              :   return NULL_TREE;
    3576              : }
    3577              : 
    3578              : tree
    3579      1045388 : generic_simplify_BIT_XOR_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    3580              : {
    3581      1045388 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3582      1045388 :   switch (TREE_CODE (_p0))
    3583              :     {
    3584          102 :     case MINUS_EXPR:
    3585          102 :       {
    3586          102 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3587          102 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3588          102 :         switch (TREE_CODE (_q21))
    3589              :           {
    3590           22 :           CASE_CONVERT:
    3591           22 :             {
    3592           22 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3593           22 :               switch (TREE_CODE (_q40))
    3594              :                 {
    3595            0 :                 case LT_EXPR:
    3596            0 :                   {
    3597            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3598            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    3599            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    3600              :                       {
    3601            0 :                         if (integer_zerop (_q51))
    3602              :                           {
    3603            0 :                             switch (TREE_CODE (_p1))
    3604              :                               {
    3605            0 :                               case NEGATE_EXPR:
    3606            0 :                                 {
    3607            0 :                                   tree _q80 = TREE_OPERAND (_p1, 0);
    3608            0 :                                   if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
    3609              :                                     {
    3610            0 :                                       {
    3611            0 :                                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3612            0 :                                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3613            0 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    3614              : )
    3615              :                                           {
    3616            0 :                                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1167;
    3617            0 :                                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1167;
    3618            0 :                                             {
    3619            0 :                                               tree res_op0;
    3620            0 :                                               res_op0 = captures[0];
    3621            0 :                                               tree _r;
    3622            0 :                                               _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    3623            0 :                                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
    3624            0 :                                               return _r;
    3625              :                                             }
    3626            0 : next_after_fail1167:;
    3627              :                                           }
    3628              :                                       }
    3629              :                                     }
    3630              :                                   break;
    3631              :                                 }
    3632              :                               default:;
    3633              :                               }
    3634              :                           }
    3635              :                       }
    3636              :                     break;
    3637              :                   }
    3638              :                 default:;
    3639              :                 }
    3640              :               break;
    3641              :             }
    3642              :           default:;
    3643              :           }
    3644              :         break;
    3645              :       }
    3646          142 :     case NEGATE_EXPR:
    3647          142 :       {
    3648          142 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3649          142 :         switch (TREE_CODE (_p1))
    3650              :           {
    3651            0 :           case MINUS_EXPR:
    3652            0 :             {
    3653            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    3654            0 :               tree _q41 = TREE_OPERAND (_p1, 1);
    3655            0 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    3656              :                 {
    3657            0 :                   switch (TREE_CODE (_q41))
    3658              :                     {
    3659            0 :                     CASE_CONVERT:
    3660            0 :                       {
    3661            0 :                         tree _q70 = TREE_OPERAND (_q41, 0);
    3662            0 :                         switch (TREE_CODE (_q70))
    3663              :                           {
    3664            0 :                           case LT_EXPR:
    3665            0 :                             {
    3666            0 :                               tree _q80 = TREE_OPERAND (_q70, 0);
    3667            0 :                               tree _q81 = TREE_OPERAND (_q70, 1);
    3668            0 :                               if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
    3669              :                                 {
    3670            0 :                                   if (integer_zerop (_q81))
    3671              :                                     {
    3672            0 :                                       {
    3673            0 :                                         tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    3674            0 :                                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3675            0 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    3676              : )
    3677              :                                           {
    3678            0 :                                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1168;
    3679            0 :                                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1168;
    3680            0 :                                             {
    3681            0 :                                               tree res_op0;
    3682            0 :                                               res_op0 = captures[0];
    3683            0 :                                               tree _r;
    3684            0 :                                               _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    3685            0 :                                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
    3686            0 :                                               return _r;
    3687              :                                             }
    3688            0 : next_after_fail1168:;
    3689              :                                           }
    3690              :                                       }
    3691              :                                     }
    3692              :                                 }
    3693              :                               break;
    3694              :                             }
    3695              :                           default:;
    3696              :                           }
    3697              :                         break;
    3698              :                       }
    3699              :                     default:;
    3700              :                     }
    3701              :                 }
    3702              :               break;
    3703              :             }
    3704              :           default:;
    3705              :           }
    3706              :         break;
    3707              :       }
    3708      1045388 :     default:;
    3709              :     }
    3710      1045388 :   if (integer_zerop (_p1))
    3711              :     {
    3712          559 :       {
    3713          559 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3714          559 :         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1169;
    3715          559 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1169;
    3716          559 :         {
    3717          559 :           tree res_op0;
    3718          559 :           res_op0 = captures[0];
    3719          559 :           tree _r;
    3720          559 :           _r = non_lvalue_loc (loc, res_op0);
    3721          559 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
    3722          559 :           return _r;
    3723              :         }
    3724              : next_after_fail1169:;
    3725              :       }
    3726              :     }
    3727      1044829 :   switch (TREE_CODE (_p0))
    3728              :     {
    3729         2982 :     case LSHIFT_EXPR:
    3730         2982 :       {
    3731         2982 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3732         2982 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3733         2982 :         switch (TREE_CODE (_p1))
    3734              :           {
    3735           10 :           case LSHIFT_EXPR:
    3736           10 :             {
    3737           10 :               tree _q50 = TREE_OPERAND (_p1, 0);
    3738           10 :               tree _q51 = TREE_OPERAND (_p1, 1);
    3739           10 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    3740              :                 {
    3741            1 :                   {
    3742            1 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    3743            1 :                     tree res = generic_simplify_3 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    3744            1 :                     if (res) return res;
    3745              :                   }
    3746              :                 }
    3747              :               break;
    3748              :             }
    3749              :           default:;
    3750              :           }
    3751              :         break;
    3752              :       }
    3753        23004 :     case RSHIFT_EXPR:
    3754        23004 :       {
    3755        23004 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3756        23004 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3757        23004 :         switch (TREE_CODE (_p1))
    3758              :           {
    3759           20 :           case RSHIFT_EXPR:
    3760           20 :             {
    3761           20 :               tree _q50 = TREE_OPERAND (_p1, 0);
    3762           20 :               tree _q51 = TREE_OPERAND (_p1, 1);
    3763           20 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    3764              :                 {
    3765           10 :                   {
    3766           10 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    3767           10 :                     tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    3768           10 :                     if (res) return res;
    3769              :                   }
    3770              :                 }
    3771              :               break;
    3772              :             }
    3773              :           default:;
    3774              :           }
    3775              :         break;
    3776              :       }
    3777         4098 :     case BIT_AND_EXPR:
    3778         4098 :       {
    3779         4098 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3780         4098 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3781         4098 :         switch (TREE_CODE (_p1))
    3782              :           {
    3783          354 :           case BIT_AND_EXPR:
    3784          354 :             {
    3785          354 :               tree _q50 = TREE_OPERAND (_p1, 0);
    3786          354 :               tree _q51 = TREE_OPERAND (_p1, 1);
    3787          354 :               {
    3788          354 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
    3789          354 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    3790          354 :                 if (res) return res;
    3791              :               }
    3792          354 :               {
    3793          354 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q50 };
    3794          354 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    3795          354 :                 if (res) return res;
    3796              :               }
    3797          354 :               {
    3798          354 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q51 };
    3799          354 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    3800          354 :                 if (res) return res;
    3801              :               }
    3802          354 :               {
    3803          354 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q50 };
    3804          354 :                 tree res = generic_simplify_5 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    3805          354 :                 if (res) return res;
    3806              :               }
    3807          354 :               break;
    3808              :             }
    3809         4098 :           default:;
    3810              :           }
    3811         4098 :         switch (TREE_CODE (_q21))
    3812              :           {
    3813           41 :           case BIT_NOT_EXPR:
    3814           41 :             {
    3815           41 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3816           41 :               switch (TREE_CODE (_p1))
    3817              :                 {
    3818            0 :                 case BIT_NOT_EXPR:
    3819            0 :                   {
    3820            0 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    3821            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    3822              :                       {
    3823            0 :                         {
    3824            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    3825            0 :                           tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
    3826            0 :                           if (res) return res;
    3827              :                         }
    3828              :                       }
    3829              :                     break;
    3830              :                   }
    3831              :                 default:;
    3832              :                 }
    3833              :               break;
    3834              :             }
    3835         4098 :           default:;
    3836              :           }
    3837         4098 :         switch (TREE_CODE (_q20))
    3838              :           {
    3839           90 :           case BIT_NOT_EXPR:
    3840           90 :             {
    3841           90 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3842           90 :               switch (TREE_CODE (_p1))
    3843              :                 {
    3844            0 :                 case BIT_NOT_EXPR:
    3845            0 :                   {
    3846            0 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    3847            0 :                     if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
    3848              :                       {
    3849            0 :                         {
    3850            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q30 };
    3851            0 :                           tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
    3852            0 :                           if (res) return res;
    3853              :                         }
    3854              :                       }
    3855              :                     break;
    3856              :                   }
    3857           90 :                 default:;
    3858              :                 }
    3859           90 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    3860              :                 {
    3861            0 :                   {
    3862            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
    3863            0 :                     tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
    3864            0 :                     if (res) return res;
    3865              :                   }
    3866              :                 }
    3867              :               break;
    3868              :             }
    3869         4098 :           default:;
    3870              :           }
    3871         4098 :         switch (TREE_CODE (_q21))
    3872              :           {
    3873           41 :           case BIT_NOT_EXPR:
    3874           41 :             {
    3875           41 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3876           41 :               if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    3877              :                 {
    3878            0 :                   {
    3879            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q20 };
    3880            0 :                     tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
    3881            0 :                     if (res) return res;
    3882              :                   }
    3883              :                 }
    3884              :               break;
    3885              :             }
    3886              :           default:;
    3887              :           }
    3888              :         break;
    3889              :       }
    3890          505 :     case BIT_NOT_EXPR:
    3891          505 :       {
    3892          505 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3893          505 :         switch (TREE_CODE (_p1))
    3894              :           {
    3895           51 :           case BIT_AND_EXPR:
    3896           51 :             {
    3897           51 :               tree _q40 = TREE_OPERAND (_p1, 0);
    3898           51 :               tree _q41 = TREE_OPERAND (_p1, 1);
    3899           51 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    3900              :                 {
    3901            0 :                   switch (TREE_CODE (_q41))
    3902              :                     {
    3903            0 :                     case BIT_NOT_EXPR:
    3904            0 :                       {
    3905            0 :                         tree _q60 = TREE_OPERAND (_q41, 0);
    3906            0 :                         {
    3907            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q60 };
    3908            0 :                           tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
    3909            0 :                           if (res) return res;
    3910              :                         }
    3911            0 :                         break;
    3912              :                       }
    3913              :                     default:;
    3914              :                     }
    3915              :                 }
    3916           51 :               switch (TREE_CODE (_q40))
    3917              :                 {
    3918            7 :                 case BIT_NOT_EXPR:
    3919            7 :                   {
    3920            7 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3921            7 :                     if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    3922              :                       {
    3923            0 :                         {
    3924            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q50 };
    3925            0 :                           tree res = generic_simplify_6 (loc, type, _p0, _p1, captures);
    3926            0 :                           if (res) return res;
    3927              :                         }
    3928              :                       }
    3929              :                     break;
    3930              :                   }
    3931              :                 default:;
    3932              :                 }
    3933              :               break;
    3934              :             }
    3935              :           default:;
    3936              :           }
    3937              :         break;
    3938              :       }
    3939      1044818 :     default:;
    3940              :     }
    3941      1044818 :   switch (TREE_CODE (_p1))
    3942              :     {
    3943          884 :     case BIT_AND_EXPR:
    3944          884 :       {
    3945          884 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3946          884 :         tree _q31 = TREE_OPERAND (_p1, 1);
    3947          884 :         switch (TREE_CODE (_q30))
    3948              :           {
    3949           57 :           case BIT_NOT_EXPR:
    3950           57 :             {
    3951           57 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3952           57 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    3953              :                 {
    3954            0 :                   {
    3955            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
    3956            0 :                     tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
    3957            0 :                     if (res) return res;
    3958              :                   }
    3959              :                 }
    3960              :               break;
    3961              :             }
    3962          884 :           default:;
    3963              :           }
    3964          884 :         switch (TREE_CODE (_q31))
    3965              :           {
    3966            8 :           case BIT_NOT_EXPR:
    3967            8 :             {
    3968            8 :               tree _q50 = TREE_OPERAND (_q31, 0);
    3969            8 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    3970              :                 {
    3971            0 :                   {
    3972            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
    3973            0 :                     tree res = generic_simplify_7 (loc, type, _p0, _p1, captures);
    3974            0 :                     if (res) return res;
    3975              :                   }
    3976              :                 }
    3977              :               break;
    3978              :             }
    3979              :           default:;
    3980              :           }
    3981              :         break;
    3982              :       }
    3983      1044818 :     default:;
    3984              :     }
    3985      1044818 :   switch (TREE_CODE (_p0))
    3986              :     {
    3987        21589 :     case PLUS_EXPR:
    3988        21589 :       {
    3989        21589 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3990        21589 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3991        21589 :         if (integer_minus_onep (_q21))
    3992              :           {
    3993        10448 :             switch (TREE_CODE (_p1))
    3994              :               {
    3995           11 :               case NEGATE_EXPR:
    3996           11 :                 {
    3997           11 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    3998           11 :                   if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    3999              :                     {
    4000           11 :                       {
    4001           11 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4002           11 :                         tree res = generic_simplify_8 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    4003           11 :                         if (res) return res;
    4004              :                       }
    4005              :                     }
    4006              :                   break;
    4007              :                 }
    4008              :               default:;
    4009              :               }
    4010              :           }
    4011              :         break;
    4012              :       }
    4013          142 :     case NEGATE_EXPR:
    4014          142 :       {
    4015          142 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4016          142 :         switch (TREE_CODE (_p1))
    4017              :           {
    4018            0 :           case PLUS_EXPR:
    4019            0 :             {
    4020            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4021            0 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4022            0 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    4023              :                 {
    4024            0 :                   if (integer_minus_onep (_q41))
    4025              :                     {
    4026            0 :                       {
    4027            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4028            0 :                         tree res = generic_simplify_9 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    4029            0 :                         if (res) return res;
    4030              :                       }
    4031              :                     }
    4032              :                 }
    4033              :               break;
    4034              :             }
    4035            0 :           case MINUS_EXPR:
    4036            0 :             {
    4037            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4038            0 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4039            0 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    4040              :                 {
    4041            0 :                   if (integer_onep (_q41))
    4042              :                     {
    4043            0 :                       {
    4044            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4045            0 :                         tree res = generic_simplify_10 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    4046            0 :                         if (res) return res;
    4047              :                       }
    4048              :                     }
    4049              :                 }
    4050              :               break;
    4051              :             }
    4052              :           default:;
    4053              :           }
    4054              :         break;
    4055              :       }
    4056          102 :     case MINUS_EXPR:
    4057          102 :       {
    4058          102 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4059          102 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4060          102 :         if (integer_onep (_q21))
    4061              :           {
    4062            0 :             switch (TREE_CODE (_p1))
    4063              :               {
    4064            0 :               case NEGATE_EXPR:
    4065            0 :                 {
    4066            0 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    4067            0 :                   if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4068              :                     {
    4069            0 :                       {
    4070            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4071            0 :                         tree res = generic_simplify_11 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    4072            0 :                         if (res) return res;
    4073              :                       }
    4074              :                     }
    4075              :                   break;
    4076              :                 }
    4077              :               default:;
    4078              :               }
    4079              :           }
    4080              :         break;
    4081              :       }
    4082         1310 :     case BIT_IOR_EXPR:
    4083         1310 :       {
    4084         1310 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4085         1310 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4086         1310 :         switch (TREE_CODE (_p1))
    4087              :           {
    4088           65 :           case BIT_AND_EXPR:
    4089           65 :             {
    4090           65 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4091           65 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4092           65 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4093              :                 {
    4094           15 :                   {
    4095           15 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4096           15 :                     tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
    4097           15 :                     if (res) return res;
    4098              :                   }
    4099              :                 }
    4100           65 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4101              :                 {
    4102           12 :                   {
    4103           12 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    4104           12 :                     tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
    4105           12 :                     if (res) return res;
    4106              :                   }
    4107              :                 }
    4108           65 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4109              :                 {
    4110            3 :                   {
    4111            3 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    4112            3 :                     tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
    4113            3 :                     if (res) return res;
    4114              :                   }
    4115              :                 }
    4116           65 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4117              :                 {
    4118            6 :                   {
    4119            6 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    4120            6 :                     tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
    4121            6 :                     if (res) return res;
    4122              :                   }
    4123              :                 }
    4124              :               break;
    4125              :             }
    4126         1310 :           default:;
    4127              :           }
    4128         1310 :         switch (TREE_CODE (_q20))
    4129              :           {
    4130          481 :           case BIT_NOT_EXPR:
    4131          481 :             {
    4132          481 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4133          481 :               {
    4134          481 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
    4135          481 :                 tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
    4136          481 :                 if (res) return res;
    4137              :               }
    4138          480 :               break;
    4139              :             }
    4140         1309 :           default:;
    4141              :           }
    4142         1309 :         switch (TREE_CODE (_q21))
    4143              :           {
    4144           62 :           case BIT_NOT_EXPR:
    4145           62 :             {
    4146           62 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4147           62 :               {
    4148           62 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20, _p1 };
    4149           62 :                 tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
    4150           62 :                 if (res) return res;
    4151              :               }
    4152           62 :               break;
    4153              :             }
    4154              :           default:;
    4155              :           }
    4156              :         break;
    4157              :       }
    4158         4098 :     case BIT_AND_EXPR:
    4159         4098 :       {
    4160         4098 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4161         4098 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4162         4098 :         switch (TREE_CODE (_p1))
    4163              :           {
    4164           74 :           case BIT_IOR_EXPR:
    4165           74 :             {
    4166           74 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4167           74 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4168           74 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4169              :                 {
    4170           18 :                   {
    4171           18 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q21, _q20 };
    4172           18 :                     tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
    4173           18 :                     if (res) return res;
    4174              :                   }
    4175              :                 }
    4176           74 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4177              :                 {
    4178            9 :                   {
    4179            9 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _q21 };
    4180            9 :                     tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
    4181            9 :                     if (res) return res;
    4182              :                   }
    4183              :                 }
    4184           74 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4185              :                 {
    4186            9 :                   {
    4187            9 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q21, _q20 };
    4188            9 :                     tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
    4189            9 :                     if (res) return res;
    4190              :                   }
    4191              :                 }
    4192           74 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4193              :                 {
    4194           18 :                   {
    4195           18 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q20, _q21 };
    4196           18 :                     tree res = generic_simplify_12 (loc, type, _p0, _p1, captures);
    4197           18 :                     if (res) return res;
    4198              :                   }
    4199              :                 }
    4200              :               break;
    4201              :             }
    4202              :           default:;
    4203              :           }
    4204              :         break;
    4205              :       }
    4206      1044806 :     default:;
    4207              :     }
    4208      1044806 :   switch (TREE_CODE (_p1))
    4209              :     {
    4210          521 :     case BIT_IOR_EXPR:
    4211          521 :       {
    4212          521 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4213          521 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4214          521 :         switch (TREE_CODE (_q30))
    4215              :           {
    4216           21 :           case BIT_NOT_EXPR:
    4217           21 :             {
    4218           21 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4219           21 :               {
    4220           21 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q31, _p0 };
    4221           21 :                 tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
    4222           21 :                 if (res) return res;
    4223              :               }
    4224           21 :               break;
    4225              :             }
    4226          521 :           default:;
    4227              :           }
    4228          521 :         switch (TREE_CODE (_q31))
    4229              :           {
    4230           25 :           case BIT_NOT_EXPR:
    4231           25 :             {
    4232           25 :               tree _q50 = TREE_OPERAND (_q31, 0);
    4233           25 :               {
    4234           25 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _q50, _q30, _p0 };
    4235           25 :                 tree res = generic_simplify_13 (loc, type, _p0, _p1, captures);
    4236           25 :                 if (res) return res;
    4237              :               }
    4238           25 :               break;
    4239              :             }
    4240              :           default:;
    4241              :           }
    4242              :         break;
    4243              :       }
    4244      1044806 :     default:;
    4245              :     }
    4246      1044806 :   switch (TREE_CODE (_p0))
    4247              :     {
    4248         4098 :     case BIT_AND_EXPR:
    4249         4098 :       {
    4250         4098 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4251         4098 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4252         4098 :         switch (TREE_CODE (_q20))
    4253              :           {
    4254           90 :           case BIT_NOT_EXPR:
    4255           90 :             {
    4256           90 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4257           90 :               {
    4258           90 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _p1 };
    4259           90 :                 tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
    4260           90 :                 if (res) return res;
    4261              :               }
    4262           89 :               break;
    4263              :             }
    4264         4097 :           default:;
    4265              :           }
    4266         4097 :         switch (TREE_CODE (_q21))
    4267              :           {
    4268           41 :           case BIT_NOT_EXPR:
    4269           41 :             {
    4270           41 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4271           41 :               {
    4272           41 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20, _p1 };
    4273           41 :                 tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
    4274           41 :                 if (res) return res;
    4275              :               }
    4276           41 :               break;
    4277              :             }
    4278              :           default:;
    4279              :           }
    4280              :         break;
    4281              :       }
    4282      1044805 :     default:;
    4283              :     }
    4284      1044805 :   switch (TREE_CODE (_p1))
    4285              :     {
    4286          884 :     case BIT_AND_EXPR:
    4287          884 :       {
    4288          884 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4289          884 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4290          884 :         switch (TREE_CODE (_q30))
    4291              :           {
    4292           57 :           case BIT_NOT_EXPR:
    4293           57 :             {
    4294           57 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4295           57 :               {
    4296           57 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _q31, _p0 };
    4297           57 :                 tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
    4298           57 :                 if (res) return res;
    4299              :               }
    4300           57 :               break;
    4301              :             }
    4302          884 :           default:;
    4303              :           }
    4304          884 :         switch (TREE_CODE (_q31))
    4305              :           {
    4306            8 :           case BIT_NOT_EXPR:
    4307            8 :             {
    4308            8 :               tree _q50 = TREE_OPERAND (_q31, 0);
    4309            8 :               {
    4310            8 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q31, _q50, _q30, _p0 };
    4311            8 :                 tree res = generic_simplify_14 (loc, type, _p0, _p1, captures);
    4312            8 :                 if (res) return res;
    4313              :               }
    4314            8 :               break;
    4315              :             }
    4316              :           default:;
    4317              :           }
    4318              :         break;
    4319              :       }
    4320      1044805 :     default:;
    4321              :     }
    4322      1044805 :   switch (TREE_CODE (_p0))
    4323              :     {
    4324       667480 :     CASE_CONVERT:
    4325       667480 :       {
    4326       667480 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4327       667480 :         switch (TREE_CODE (_p1))
    4328              :           {
    4329       663176 :           CASE_CONVERT:
    4330       663176 :             {
    4331       663176 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4332       663176 :               {
    4333       663176 :                 tree _q40_pops[1];
    4334       663176 :                 if (tree_maybe_bit_not (_q40, _q40_pops))
    4335              :                   {
    4336            0 :                     tree _q50 = _q40_pops[0];
    4337            0 :                     {
    4338            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    4339            0 :                       tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    4340            0 :                       if (res) return res;
    4341              :                     }
    4342              :                   }
    4343              :               }
    4344       663176 :               break;
    4345              :             }
    4346       667480 :           default:;
    4347              :           }
    4348       667480 :         {
    4349       667480 :           tree _q20_pops[1];
    4350       667480 :           if (tree_maybe_bit_not (_q20, _q20_pops))
    4351              :             {
    4352        64635 :               tree _q30 = _q20_pops[0];
    4353        64635 :               switch (TREE_CODE (_p1))
    4354              :                 {
    4355        64585 :                 CASE_CONVERT:
    4356        64585 :                   {
    4357        64585 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4358        64585 :                     {
    4359        64585 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    4360        64585 :                       tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    4361        64585 :                       if (res) return res;
    4362              :                     }
    4363        64585 :                     break;
    4364              :                   }
    4365              :                 default:;
    4366              :                 }
    4367              :             }
    4368              :         }
    4369       667480 :         break;
    4370              :       }
    4371      1044805 :     default:;
    4372              :     }
    4373      1044805 :   {
    4374      1044805 :     tree _p1_pops[1];
    4375      1044805 :     if (tree_maybe_bit_not (_p1, _p1_pops))
    4376              :       {
    4377        10161 :         tree _q30 = _p1_pops[0];
    4378        10161 :         {
    4379        10161 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    4380        10161 :           tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    4381        10161 :           if (res) return res;
    4382              :         }
    4383              :       }
    4384              :   }
    4385      1044805 :   {
    4386      1044805 :     tree _p0_pops[1];
    4387      1044805 :     if (tree_maybe_bit_not (_p0, _p0_pops))
    4388              :       {
    4389         1052 :         tree _q20 = _p0_pops[0];
    4390         1052 :         {
    4391         1052 :           tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
    4392         1052 :           tree res = generic_simplify_15 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    4393         1052 :           if (res) return res;
    4394              :         }
    4395              :       }
    4396              :   }
    4397      1044784 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    4398              :     {
    4399          149 :       {
    4400          149 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4401          149 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1170;
    4402          149 :         {
    4403          149 :           tree _r;
    4404          149 :           _r =  build_zero_cst (type);
    4405          149 :           if (TREE_SIDE_EFFECTS (captures[0]))
    4406            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    4407          149 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
    4408          149 :           return _r;
    4409              :         }
    4410            0 : next_after_fail1170:;
    4411              :       }
    4412              :     }
    4413      1044635 :   if (integer_all_onesp (_p1))
    4414              :     {
    4415         1091 :       {
    4416         1091 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4417         1091 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1171;
    4418         1091 :         {
    4419         1091 :           tree res_op0;
    4420         1091 :           res_op0 = captures[0];
    4421         1091 :           tree _r;
    4422         1091 :           _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    4423         1091 :           if (TREE_SIDE_EFFECTS (captures[1]))
    4424            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4425         1091 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    4426         1091 :           return _r;
    4427              :         }
    4428            0 : next_after_fail1171:;
    4429              :       }
    4430              :     }
    4431      1043544 :   switch (TREE_CODE (_p0))
    4432              :     {
    4433         1302 :     case BIT_IOR_EXPR:
    4434         1302 :       {
    4435         1302 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4436         1302 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4437         1302 :         switch (TREE_CODE (_p1))
    4438              :           {
    4439          179 :           case BIT_IOR_EXPR:
    4440          179 :             {
    4441          179 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4442          179 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4443          179 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4444              :                 {
    4445            0 :                   switch (TREE_CODE (_q51))
    4446              :                     {
    4447            0 :                     case BIT_NOT_EXPR:
    4448            0 :                       {
    4449            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4450            0 :                         if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
    4451              :                           {
    4452            0 :                             {
    4453            0 :                               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4454            0 :                               tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
    4455            0 :                               if (res) return res;
    4456              :                             }
    4457              :                           }
    4458              :                         break;
    4459              :                       }
    4460              :                     default:;
    4461              :                     }
    4462              :                 }
    4463          179 :               switch (TREE_CODE (_q50))
    4464              :                 {
    4465           20 :                 case BIT_NOT_EXPR:
    4466           20 :                   {
    4467           20 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    4468           20 :                     if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
    4469              :                       {
    4470            2 :                         if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4471              :                           {
    4472            1 :                             {
    4473            1 :                               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4474            1 :                               tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
    4475            1 :                               if (res) return res;
    4476              :                             }
    4477              :                           }
    4478              :                       }
    4479           19 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4480              :                       {
    4481            0 :                         if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4482              :                           {
    4483            0 :                             {
    4484            0 :                               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    4485            0 :                               tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
    4486            0 :                               if (res) return res;
    4487              :                             }
    4488              :                           }
    4489              :                       }
    4490              :                     break;
    4491              :                   }
    4492          178 :                 default:;
    4493              :                 }
    4494          178 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4495              :                 {
    4496            0 :                   switch (TREE_CODE (_q51))
    4497              :                     {
    4498            0 :                     case BIT_NOT_EXPR:
    4499            0 :                       {
    4500            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4501            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4502              :                           {
    4503            0 :                             {
    4504            0 :                               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    4505            0 :                               tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
    4506            0 :                               if (res) return res;
    4507              :                             }
    4508              :                           }
    4509              :                         break;
    4510              :                       }
    4511              :                     default:;
    4512              :                     }
    4513              :                 }
    4514              :               break;
    4515              :             }
    4516         1301 :           default:;
    4517              :           }
    4518         1301 :         switch (TREE_CODE (_q21))
    4519              :           {
    4520           62 :           case BIT_NOT_EXPR:
    4521           62 :             {
    4522           62 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4523           62 :               switch (TREE_CODE (_p1))
    4524              :                 {
    4525            9 :                 case BIT_IOR_EXPR:
    4526            9 :                   {
    4527            9 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4528            9 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    4529            9 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4530              :                       {
    4531            0 :                         if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
    4532              :                           {
    4533            0 :                             {
    4534            0 :                               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    4535            0 :                               tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
    4536            0 :                               if (res) return res;
    4537              :                             }
    4538              :                           }
    4539              :                       }
    4540              :                     break;
    4541              :                   }
    4542              :                 default:;
    4543              :                 }
    4544              :               break;
    4545              :             }
    4546         1301 :           default:;
    4547              :           }
    4548         1301 :         switch (TREE_CODE (_q20))
    4549              :           {
    4550          480 :           case BIT_NOT_EXPR:
    4551          480 :             {
    4552          480 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4553          480 :               switch (TREE_CODE (_p1))
    4554              :                 {
    4555           28 :                 case BIT_IOR_EXPR:
    4556           28 :                   {
    4557           28 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4558           28 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    4559           28 :                     if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
    4560              :                       {
    4561            0 :                         if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    4562              :                           {
    4563            0 :                             {
    4564            0 :                               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
    4565            0 :                               tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
    4566            0 :                               if (res) return res;
    4567              :                             }
    4568              :                           }
    4569              :                       }
    4570           28 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4571              :                       {
    4572            9 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    4573              :                           {
    4574            0 :                             {
    4575            0 :                               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q30 };
    4576            0 :                               tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
    4577            0 :                               if (res) return res;
    4578              :                             }
    4579              :                           }
    4580            9 :                         switch (TREE_CODE (_q61))
    4581              :                           {
    4582            0 :                           case BIT_NOT_EXPR:
    4583            0 :                             {
    4584            0 :                               tree _q80 = TREE_OPERAND (_q61, 0);
    4585            0 :                               if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
    4586              :                                 {
    4587            0 :                                   {
    4588            0 :                                     tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4589            0 :                                     tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
    4590            0 :                                     if (res) return res;
    4591              :                                   }
    4592              :                                 }
    4593              :                               break;
    4594              :                             }
    4595              :                           default:;
    4596              :                           }
    4597              :                       }
    4598           28 :                     switch (TREE_CODE (_q60))
    4599              :                       {
    4600            1 :                       case BIT_NOT_EXPR:
    4601            1 :                         {
    4602            1 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    4603            1 :                           if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
    4604              :                             {
    4605            1 :                               if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    4606              :                                 {
    4607            1 :                                   {
    4608            1 :                                     tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4609            1 :                                     tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
    4610            1 :                                     if (res) return res;
    4611              :                                   }
    4612              :                                 }
    4613              :                             }
    4614              :                           break;
    4615              :                         }
    4616              :                       default:;
    4617              :                       }
    4618              :                     break;
    4619              :                   }
    4620            9 :                 case BIT_XOR_EXPR:
    4621            9 :                   {
    4622            9 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4623            9 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    4624            9 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4625              :                       {
    4626            0 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    4627              :                           {
    4628            0 :                             {
    4629            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q21, _p1 };
    4630            0 :                               tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
    4631            0 :                               if (res) return res;
    4632              :                             }
    4633              :                           }
    4634              :                       }
    4635              :                     break;
    4636              :                   }
    4637          479 :                 default:;
    4638              :                 }
    4639          479 :               {
    4640          479 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _p1 };
    4641          479 :                 tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    4642          479 :                 if (res) return res;
    4643              :               }
    4644          431 :               break;
    4645              :             }
    4646         1252 :           default:;
    4647              :           }
    4648         1252 :         switch (TREE_CODE (_q21))
    4649              :           {
    4650           62 :           case BIT_NOT_EXPR:
    4651           62 :             {
    4652           62 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4653           62 :               switch (TREE_CODE (_p1))
    4654              :                 {
    4655            9 :                 case BIT_IOR_EXPR:
    4656            9 :                   {
    4657            9 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4658            9 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    4659            9 :                     if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    4660              :                       {
    4661            0 :                         if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
    4662              :                           {
    4663            0 :                             {
    4664            0 :                               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    4665            0 :                               tree res = generic_simplify_16 (loc, type, _p0, _p1, captures);
    4666            0 :                               if (res) return res;
    4667              :                             }
    4668              :                           }
    4669              :                       }
    4670              :                     break;
    4671              :                   }
    4672            9 :                 case BIT_XOR_EXPR:
    4673            9 :                   {
    4674            9 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4675            9 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    4676            9 :                     if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    4677              :                       {
    4678            0 :                         if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
    4679              :                           {
    4680            0 :                             {
    4681            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q40, _q20, _p1 };
    4682            0 :                               tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
    4683            0 :                               if (res) return res;
    4684              :                             }
    4685              :                           }
    4686              :                       }
    4687              :                     break;
    4688              :                   }
    4689              :                 default:;
    4690              :                 }
    4691              :               break;
    4692              :             }
    4693         1252 :           default:;
    4694              :           }
    4695         1252 :         switch (TREE_CODE (_p1))
    4696              :           {
    4697           65 :           case BIT_AND_EXPR:
    4698           65 :             {
    4699           65 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4700           65 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4701           65 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4702              :                 {
    4703            6 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4704              :                     {
    4705            0 :                       {
    4706            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4707            0 :                         tree res = generic_simplify_20 (loc, type, _p0, _p1, captures);
    4708            0 :                         if (res) return res;
    4709              :                       }
    4710              :                     }
    4711              :                 }
    4712              :               break;
    4713              :             }
    4714           36 :           case BIT_XOR_EXPR:
    4715           36 :             {
    4716           36 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4717           36 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4718           36 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4719              :                 {
    4720            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4721              :                     {
    4722            0 :                       {
    4723            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4724            0 :                         tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
    4725            0 :                         if (res) return res;
    4726              :                       }
    4727              :                     }
    4728              :                 }
    4729              :               break;
    4730              :             }
    4731         1252 :           default:;
    4732              :           }
    4733         1252 :         switch (TREE_CODE (_q21))
    4734              :           {
    4735           62 :           case BIT_NOT_EXPR:
    4736           62 :             {
    4737           62 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4738           62 :               switch (TREE_CODE (_p1))
    4739              :                 {
    4740            9 :                 case BIT_IOR_EXPR:
    4741            9 :                   {
    4742            9 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    4743            9 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    4744            9 :                     if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    4745              :                       {
    4746            0 :                         switch (TREE_CODE (_q61))
    4747              :                           {
    4748            0 :                           case BIT_NOT_EXPR:
    4749            0 :                             {
    4750            0 :                               tree _q80 = TREE_OPERAND (_q61, 0);
    4751            0 :                               if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    4752              :                                 {
    4753            0 :                                   {
    4754            0 :                                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    4755            0 :                                     tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
    4756            0 :                                     if (res) return res;
    4757              :                                   }
    4758              :                                 }
    4759              :                               break;
    4760              :                             }
    4761              :                           default:;
    4762              :                           }
    4763              :                       }
    4764            9 :                     switch (TREE_CODE (_q60))
    4765              :                       {
    4766            0 :                       case BIT_NOT_EXPR:
    4767            0 :                         {
    4768            0 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    4769            0 :                           if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4770              :                             {
    4771            0 :                               if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
    4772              :                                 {
    4773            0 :                                   {
    4774            0 :                                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    4775            0 :                                     tree res = generic_simplify_17 (loc, type, _p0, _p1, captures);
    4776            0 :                                     if (res) return res;
    4777              :                                   }
    4778              :                                 }
    4779              :                             }
    4780              :                           break;
    4781              :                         }
    4782              :                       default:;
    4783              :                       }
    4784              :                     break;
    4785              :                   }
    4786              :                 default:;
    4787              :                 }
    4788              :               break;
    4789              :             }
    4790         1252 :           default:;
    4791              :           }
    4792         1252 :         switch (TREE_CODE (_p1))
    4793              :           {
    4794           24 :           CASE_CONVERT:
    4795           24 :             {
    4796           24 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4797           24 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    4798              :                 {
    4799            0 :                   {
    4800            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
    4801            0 :                     tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    4802            0 :                     if (res) return res;
    4803              :                   }
    4804              :                 }
    4805           24 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
    4806              :                 {
    4807            0 :                   {
    4808            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q21 };
    4809            0 :                     tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    4810            0 :                     if (res) return res;
    4811              :                   }
    4812              :                 }
    4813              :               break;
    4814              :             }
    4815         1252 :           default:;
    4816              :           }
    4817         1252 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
    4818              :           {
    4819            3 :             {
    4820            3 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q20 };
    4821            3 :               tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    4822            3 :               if (res) return res;
    4823              :             }
    4824              :           }
    4825         1249 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
    4826              :           {
    4827            3 :             {
    4828            3 :               tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q21 };
    4829            3 :               tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    4830            3 :               if (res) return res;
    4831              :             }
    4832              :           }
    4833         1246 :         {
    4834         1246 :           tree _q20_pops[1];
    4835         1246 :           if (tree_nop_convert (_q20, _q20_pops))
    4836              :             {
    4837            8 :               tree _q30 = _q20_pops[0];
    4838            8 :               switch (TREE_CODE (_q30))
    4839              :                 {
    4840            8 :                 case BIT_NOT_EXPR:
    4841            8 :                   {
    4842            8 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    4843            8 :                     {
    4844            8 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q21, _p1 };
    4845            8 :                       tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    4846            8 :                       if (res) return res;
    4847              :                     }
    4848            0 :                     break;
    4849              :                   }
    4850              :                 default:;
    4851              :                 }
    4852              :             }
    4853              :         }
    4854         1238 :         switch (TREE_CODE (_q21))
    4855              :           {
    4856           62 :           case BIT_NOT_EXPR:
    4857           62 :             {
    4858           62 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4859           62 :               {
    4860           62 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q20, _p1 };
    4861           62 :                 tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    4862           62 :                 if (res) return res;
    4863              :               }
    4864           54 :               break;
    4865              :             }
    4866         1230 :           default:;
    4867              :           }
    4868         1230 :       {
    4869         1230 :         tree _q21_pops[1];
    4870         1230 :         if (tree_nop_convert (_q21, _q21_pops))
    4871              :           {
    4872            0 :             tree _q40 = _q21_pops[0];
    4873            0 :             switch (TREE_CODE (_q40))
    4874              :               {
    4875            0 :               case BIT_NOT_EXPR:
    4876            0 :                 {
    4877            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    4878            0 :                   {
    4879            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q20, _p1 };
    4880            0 :                     tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    4881            0 :                     if (res) return res;
    4882              :                   }
    4883            0 :                   break;
    4884              :                 }
    4885              :               default:;
    4886              :               }
    4887              :           }
    4888              :       }
    4889         1230 :         break;
    4890              :       }
    4891         4046 :     case BIT_XOR_EXPR:
    4892         4046 :       {
    4893         4046 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4894         4046 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4895         4046 :         switch (TREE_CODE (_p1))
    4896              :           {
    4897          203 :           case BIT_IOR_EXPR:
    4898          203 :             {
    4899          203 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4900          203 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4901          203 :               switch (TREE_CODE (_q50))
    4902              :                 {
    4903            1 :                 case BIT_NOT_EXPR:
    4904            1 :                   {
    4905            1 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    4906            1 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4907              :                       {
    4908            1 :                         if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4909              :                           {
    4910            1 :                             {
    4911            1 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q21, _p0 };
    4912            1 :                               tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
    4913            1 :                               if (res) return res;
    4914              :                             }
    4915              :                           }
    4916              :                       }
    4917              :                     break;
    4918              :                   }
    4919          202 :                 default:;
    4920              :                 }
    4921          202 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4922              :                 {
    4923            0 :                   switch (TREE_CODE (_q51))
    4924              :                     {
    4925            0 :                     case BIT_NOT_EXPR:
    4926            0 :                       {
    4927            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4928            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4929              :                           {
    4930            0 :                             {
    4931            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q20, _q21, _p0 };
    4932            0 :                               tree res = generic_simplify_18 (loc, type, _p0, _p1, captures);
    4933            0 :                               if (res) return res;
    4934              :                             }
    4935              :                           }
    4936              :                         break;
    4937              :                       }
    4938              :                     default:;
    4939              :                     }
    4940              :                 }
    4941          202 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4942              :                 {
    4943            1 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4944              :                     {
    4945            0 :                       {
    4946            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4947            0 :                         tree res = generic_simplify_21 (loc, type, _p0, _p1, captures);
    4948            0 :                         if (res) return res;
    4949              :                       }
    4950              :                     }
    4951              :                 }
    4952              :               break;
    4953              :             }
    4954           41 :           case BIT_AND_EXPR:
    4955           41 :             {
    4956           41 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4957           41 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4958           41 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4959              :                 {
    4960            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4961              :                     {
    4962            0 :                       {
    4963            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4964            0 :                         tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    4965            0 :                         if (res) return res;
    4966              :                       }
    4967              :                     }
    4968              :                 }
    4969              :               break;
    4970              :             }
    4971          202 :           CASE_CONVERT:
    4972          202 :             {
    4973          202 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4974          202 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
    4975              :                 {
    4976            0 :                   {
    4977            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
    4978            0 :                     tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    4979            0 :                     if (res) return res;
    4980              :                   }
    4981              :                 }
    4982          202 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    4983              :                 {
    4984            0 :                   {
    4985            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q20 };
    4986            0 :                     tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    4987            0 :                     if (res) return res;
    4988              :                   }
    4989              :                 }
    4990              :               break;
    4991              :             }
    4992         4045 :           default:;
    4993              :           }
    4994         4045 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
    4995              :           {
    4996            0 :             {
    4997            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
    4998            0 :               tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    4999            0 :               if (res) return res;
    5000              :             }
    5001              :           }
    5002         4045 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q20, 0))
    5003              :           {
    5004           11 :             {
    5005           11 :               tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q20 };
    5006           11 :               tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    5007           11 :               if (res) return res;
    5008              :             }
    5009              :           }
    5010              :         break;
    5011              :       }
    5012         4097 :     case BIT_AND_EXPR:
    5013         4097 :       {
    5014         4097 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5015         4097 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5016         4097 :         switch (TREE_CODE (_p1))
    5017              :           {
    5018           74 :           case BIT_IOR_EXPR:
    5019           74 :             {
    5020           74 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5021           74 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5022           74 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5023              :                 {
    5024           18 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5025              :                     {
    5026            0 :                       {
    5027            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5028            0 :                         tree res = generic_simplify_20 (loc, type, _p0, _p1, captures);
    5029            0 :                         if (res) return res;
    5030              :                       }
    5031              :                     }
    5032              :                 }
    5033              :               break;
    5034              :             }
    5035           30 :           case BIT_XOR_EXPR:
    5036           30 :             {
    5037           30 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5038           30 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5039           30 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5040              :                 {
    5041            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5042              :                     {
    5043            0 :                       {
    5044            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5045            0 :                         tree res = generic_simplify_23 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    5046            0 :                         if (res) return res;
    5047              :                       }
    5048              :                     }
    5049              :                 }
    5050              :               break;
    5051              :             }
    5052         4097 :           default:;
    5053              :           }
    5054         4097 :         switch (TREE_CODE (_q21))
    5055              :           {
    5056         2272 :           case INTEGER_CST:
    5057         2272 :             {
    5058         2272 :               switch (TREE_CODE (_p1))
    5059              :                 {
    5060           15 :                 CASE_CONVERT:
    5061           15 :                   {
    5062           15 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5063           15 :                     switch (TREE_CODE (_q50))
    5064              :                       {
    5065            0 :                       case BIT_AND_EXPR:
    5066            0 :                         {
    5067            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    5068            0 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    5069            0 :                           switch (TREE_CODE (_q61))
    5070              :                             {
    5071            0 :                             case INTEGER_CST:
    5072            0 :                               {
    5073            0 :                                 {
    5074            0 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50, _q60, _q61 };
    5075            0 :                                   tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    5076            0 :                                   if (res) return res;
    5077              :                                 }
    5078            0 :                                 break;
    5079              :                               }
    5080              :                             default:;
    5081              :                             }
    5082              :                           break;
    5083              :                         }
    5084              :                       default:;
    5085              :                       }
    5086              :                     break;
    5087              :                   }
    5088          210 :                 case BIT_AND_EXPR:
    5089          210 :                   {
    5090          210 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5091          210 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5092          210 :                     switch (TREE_CODE (_q51))
    5093              :                       {
    5094          210 :                       case INTEGER_CST:
    5095          210 :                         {
    5096          210 :                           {
    5097          210 :                             tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
    5098          210 :                             tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    5099          210 :                             if (res) return res;
    5100              :                           }
    5101          209 :                           break;
    5102              :                         }
    5103              :                       default:;
    5104              :                       }
    5105              :                     break;
    5106              :                   }
    5107              :                 default:;
    5108              :                 }
    5109              :               break;
    5110              :             }
    5111              :           default:;
    5112              :           }
    5113              :         break;
    5114              :       }
    5115       667323 :     CASE_CONVERT:
    5116       667323 :       {
    5117       667323 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5118       667323 :         switch (TREE_CODE (_q20))
    5119              :           {
    5120           24 :           case BIT_AND_EXPR:
    5121           24 :             {
    5122           24 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5123           24 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5124           24 :               switch (TREE_CODE (_q31))
    5125              :                 {
    5126            0 :                 case INTEGER_CST:
    5127            0 :                   {
    5128            0 :                     switch (TREE_CODE (_p1))
    5129              :                       {
    5130            0 :                       CASE_CONVERT:
    5131            0 :                         {
    5132            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    5133            0 :                           switch (TREE_CODE (_q60))
    5134              :                             {
    5135            0 :                             case BIT_AND_EXPR:
    5136            0 :                               {
    5137            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    5138            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    5139            0 :                                 switch (TREE_CODE (_q71))
    5140              :                                   {
    5141            0 :                                   case INTEGER_CST:
    5142            0 :                                     {
    5143            0 :                                       {
    5144            0 :                                         tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q60, _q70, _q71 };
    5145            0 :                                         tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    5146            0 :                                         if (res) return res;
    5147              :                                       }
    5148            0 :                                       break;
    5149              :                                     }
    5150              :                                   default:;
    5151              :                                   }
    5152              :                                 break;
    5153              :                               }
    5154              :                             default:;
    5155              :                             }
    5156              :                           break;
    5157              :                         }
    5158            0 :                       case BIT_AND_EXPR:
    5159            0 :                         {
    5160            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    5161            0 :                           tree _q61 = TREE_OPERAND (_p1, 1);
    5162            0 :                           switch (TREE_CODE (_q61))
    5163              :                             {
    5164            0 :                             case INTEGER_CST:
    5165            0 :                               {
    5166            0 :                                 {
    5167            0 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1, _q60, _q61 };
    5168            0 :                                   tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    5169            0 :                                   if (res) return res;
    5170              :                                 }
    5171            0 :                                 break;
    5172              :                               }
    5173              :                             default:;
    5174              :                             }
    5175              :                           break;
    5176              :                         }
    5177              :                       default:;
    5178              :                       }
    5179              :                     break;
    5180              :                   }
    5181              :                 default:;
    5182              :                 }
    5183              :               break;
    5184              :             }
    5185           24 :           case BIT_IOR_EXPR:
    5186           24 :             {
    5187           24 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5188           24 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5189           24 :               switch (TREE_CODE (_p1))
    5190              :                 {
    5191           16 :                 CASE_CONVERT:
    5192           16 :                   {
    5193           16 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5194           16 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
    5195              :                       {
    5196            0 :                         {
    5197            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
    5198            0 :                           tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5199            0 :                           if (res) return res;
    5200              :                         }
    5201              :                       }
    5202           16 :                     if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
    5203              :                       {
    5204            0 :                         {
    5205            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
    5206            0 :                           tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5207            0 :                           if (res) return res;
    5208              :                         }
    5209              :                       }
    5210              :                     break;
    5211              :                   }
    5212           24 :                 default:;
    5213              :                 }
    5214           24 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
    5215              :                 {
    5216            0 :                   {
    5217            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
    5218            0 :                     tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5219            0 :                     if (res) return res;
    5220              :                   }
    5221              :                 }
    5222           24 :               if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
    5223              :                 {
    5224            0 :                   {
    5225            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
    5226            0 :                     tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5227            0 :                     if (res) return res;
    5228              :                   }
    5229              :                 }
    5230              :               break;
    5231              :             }
    5232       667323 :           default:;
    5233              :           }
    5234       667323 :         switch (TREE_CODE (_p1))
    5235              :           {
    5236       663169 :           CASE_CONVERT:
    5237       663169 :             {
    5238       663169 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5239       663169 :               switch (TREE_CODE (_q40))
    5240              :                 {
    5241            0 :                 case BIT_IOR_EXPR:
    5242            0 :                   {
    5243            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5244            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    5245            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    5246              :                       {
    5247            0 :                         {
    5248            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
    5249            0 :                           tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5250            0 :                           if (res) return res;
    5251              :                         }
    5252              :                       }
    5253            0 :                     if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
    5254              :                       {
    5255            0 :                         {
    5256            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
    5257            0 :                           tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5258            0 :                           if (res) return res;
    5259              :                         }
    5260              :                       }
    5261              :                     break;
    5262              :                   }
    5263              :                 default:;
    5264              :                 }
    5265              :               break;
    5266              :             }
    5267           26 :           case BIT_IOR_EXPR:
    5268           26 :             {
    5269           26 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5270           26 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5271           26 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
    5272              :                 {
    5273            0 :                   {
    5274            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
    5275            0 :                     tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5276            0 :                     if (res) return res;
    5277              :                   }
    5278              :                 }
    5279           26 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
    5280              :                 {
    5281            0 :                   {
    5282            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
    5283            0 :                     tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5284            0 :                     if (res) return res;
    5285              :                   }
    5286              :                 }
    5287              :               break;
    5288              :             }
    5289              :           default:;
    5290              :           }
    5291              :         break;
    5292              :       }
    5293      1043459 :     default:;
    5294              :     }
    5295      1043459 :   switch (TREE_CODE (_p1))
    5296              :     {
    5297       799923 :     CASE_CONVERT:
    5298       799923 :       {
    5299       799923 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5300       799923 :         switch (TREE_CODE (_q30))
    5301              :           {
    5302            6 :           case BIT_IOR_EXPR:
    5303            6 :             {
    5304            6 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5305            6 :               tree _q41 = TREE_OPERAND (_q30, 1);
    5306            6 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
    5307              :                 {
    5308            0 :                   {
    5309            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
    5310            0 :                     tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5311            0 :                     if (res) return res;
    5312              :                   }
    5313              :                 }
    5314            6 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
    5315              :                 {
    5316            0 :                   {
    5317            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
    5318            0 :                     tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5319            0 :                     if (res) return res;
    5320              :                   }
    5321              :                 }
    5322              :               break;
    5323              :             }
    5324              :           default:;
    5325              :           }
    5326              :         break;
    5327              :       }
    5328          518 :     case BIT_IOR_EXPR:
    5329          518 :       {
    5330          518 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5331          518 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5332          518 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
    5333              :           {
    5334            1 :             {
    5335            1 :               tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
    5336            1 :               tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5337            1 :               if (res) return res;
    5338              :             }
    5339              :           }
    5340          517 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
    5341              :           {
    5342            1 :             {
    5343            1 :               tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
    5344            1 :               tree res = generic_simplify_22 (loc, type, _p0, _p1, captures);
    5345            1 :               if (res) return res;
    5346              :             }
    5347              :           }
    5348              :         break;
    5349              :       }
    5350      1043457 :     default:;
    5351              :     }
    5352      1043457 :   {
    5353      1043457 :     tree _p0_pops[1];
    5354      1043457 :     if (tree_nop_convert (_p0, _p0_pops))
    5355              :       {
    5356       529692 :         tree _q20 = _p0_pops[0];
    5357       529692 :         switch (TREE_CODE (_q20))
    5358              :           {
    5359           16 :           case BIT_IOR_EXPR:
    5360           16 :             {
    5361           16 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5362           16 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5363           16 :               {
    5364           16 :                 tree _q30_pops[1];
    5365           16 :                 if (tree_nop_convert (_q30, _q30_pops))
    5366              :                   {
    5367            0 :                     tree _q40 = _q30_pops[0];
    5368            0 :                     switch (TREE_CODE (_q40))
    5369              :                       {
    5370            0 :                       case BIT_NOT_EXPR:
    5371            0 :                         {
    5372            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    5373            0 :                           {
    5374            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q31, _p1 };
    5375            0 :                             tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5376            0 :                             if (res) return res;
    5377              :                           }
    5378            0 :                           break;
    5379              :                         }
    5380              :                       default:;
    5381              :                       }
    5382              :                   }
    5383              :               }
    5384           16 :               {
    5385           16 :                 tree _q31_pops[1];
    5386           16 :                 if (tree_nop_convert (_q31, _q31_pops))
    5387              :                   {
    5388            0 :                     tree _q50 = _q31_pops[0];
    5389            0 :                     switch (TREE_CODE (_q50))
    5390              :                       {
    5391            0 :                       case BIT_NOT_EXPR:
    5392            0 :                         {
    5393            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    5394            0 :                           {
    5395            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q30, _p1 };
    5396            0 :                             tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5397            0 :                             if (res) return res;
    5398              :                           }
    5399            0 :                           break;
    5400              :                         }
    5401              :                       default:;
    5402              :                       }
    5403              :                   }
    5404              :               }
    5405           16 :               switch (TREE_CODE (_q30))
    5406              :                 {
    5407           16 :                 case BIT_NOT_EXPR:
    5408           16 :                   {
    5409           16 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    5410           16 :                     {
    5411           16 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q31, _p1 };
    5412           16 :                       tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5413           16 :                       if (res) return res;
    5414              :                     }
    5415            0 :                     break;
    5416              :                   }
    5417            0 :                 default:;
    5418              :                 }
    5419            0 :               switch (TREE_CODE (_q31))
    5420              :                 {
    5421            0 :                 case BIT_NOT_EXPR:
    5422            0 :                   {
    5423            0 :                     tree _q50 = TREE_OPERAND (_q31, 0);
    5424            0 :                     {
    5425            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q30, _p1 };
    5426            0 :                       tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5427            0 :                       if (res) return res;
    5428              :                     }
    5429            0 :                     break;
    5430              :                   }
    5431              :                 default:;
    5432              :                 }
    5433              :               break;
    5434              :             }
    5435              :           default:;
    5436              :           }
    5437              :       }
    5438              :   }
    5439      1043441 :   switch (TREE_CODE (_p1))
    5440              :     {
    5441          516 :     case BIT_IOR_EXPR:
    5442          516 :       {
    5443          516 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5444          516 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5445          516 :         {
    5446          516 :           tree _q30_pops[1];
    5447          516 :           if (tree_nop_convert (_q30, _q30_pops))
    5448              :             {
    5449            2 :               tree _q40 = _q30_pops[0];
    5450            2 :               switch (TREE_CODE (_q40))
    5451              :                 {
    5452            0 :                 case BIT_NOT_EXPR:
    5453            0 :                   {
    5454            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5455            0 :                     {
    5456            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q31, _p0 };
    5457            0 :                       tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5458            0 :                       if (res) return res;
    5459              :                     }
    5460            0 :                     break;
    5461              :                   }
    5462              :                 default:;
    5463              :                 }
    5464              :             }
    5465              :         }
    5466          516 :         {
    5467          516 :           tree _q31_pops[1];
    5468          516 :           if (tree_nop_convert (_q31, _q31_pops))
    5469              :             {
    5470            2 :               tree _q50 = _q31_pops[0];
    5471            2 :               switch (TREE_CODE (_q50))
    5472              :                 {
    5473            0 :                 case BIT_NOT_EXPR:
    5474            0 :                   {
    5475            0 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    5476            0 :                     {
    5477            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q30, _p0 };
    5478            0 :                       tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5479            0 :                       if (res) return res;
    5480              :                     }
    5481            0 :                     break;
    5482              :                   }
    5483              :                 default:;
    5484              :                 }
    5485              :             }
    5486              :         }
    5487          516 :         switch (TREE_CODE (_q30))
    5488              :           {
    5489           18 :           case BIT_NOT_EXPR:
    5490           18 :             {
    5491           18 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5492           18 :               {
    5493           18 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q31, _p0 };
    5494           18 :                 tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5495           18 :                 if (res) return res;
    5496              :               }
    5497           18 :               break;
    5498              :             }
    5499          516 :           default:;
    5500              :           }
    5501          516 :         switch (TREE_CODE (_q31))
    5502              :           {
    5503           25 :           case BIT_NOT_EXPR:
    5504           25 :             {
    5505           25 :               tree _q50 = TREE_OPERAND (_q31, 0);
    5506           25 :               {
    5507           25 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q30, _p0 };
    5508           25 :                 tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5509           25 :                 if (res) return res;
    5510              :               }
    5511           17 :               break;
    5512              :             }
    5513              :           default:;
    5514              :           }
    5515              :         break;
    5516              :       }
    5517      1043433 :     default:;
    5518              :     }
    5519      1043433 : {
    5520      1043433 :   tree _p1_pops[1];
    5521      1043433 :   if (tree_nop_convert (_p1, _p1_pops))
    5522              :     {
    5523       664964 :       tree _q30 = _p1_pops[0];
    5524       664964 :       switch (TREE_CODE (_q30))
    5525              :         {
    5526            0 :         case BIT_IOR_EXPR:
    5527            0 :           {
    5528            0 :             tree _q40 = TREE_OPERAND (_q30, 0);
    5529            0 :             tree _q41 = TREE_OPERAND (_q30, 1);
    5530            0 :             {
    5531            0 :               tree _q40_pops[1];
    5532            0 :               if (tree_nop_convert (_q40, _q40_pops))
    5533              :                 {
    5534            0 :                   tree _q50 = _q40_pops[0];
    5535            0 :                   switch (TREE_CODE (_q50))
    5536              :                     {
    5537            0 :                     case BIT_NOT_EXPR:
    5538            0 :                       {
    5539            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    5540            0 :                         {
    5541            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q41, _p0 };
    5542            0 :                           tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5543            0 :                           if (res) return res;
    5544              :                         }
    5545            0 :                         break;
    5546              :                       }
    5547              :                     default:;
    5548              :                     }
    5549              :                 }
    5550              :             }
    5551            0 :             {
    5552            0 :               tree _q41_pops[1];
    5553            0 :               if (tree_nop_convert (_q41, _q41_pops))
    5554              :                 {
    5555            0 :                   tree _q60 = _q41_pops[0];
    5556            0 :                   switch (TREE_CODE (_q60))
    5557              :                     {
    5558            0 :                     case BIT_NOT_EXPR:
    5559            0 :                       {
    5560            0 :                         tree _q70 = TREE_OPERAND (_q60, 0);
    5561            0 :                         {
    5562            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q70, _q40, _p0 };
    5563            0 :                           tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5564            0 :                           if (res) return res;
    5565              :                         }
    5566            0 :                         break;
    5567              :                       }
    5568              :                     default:;
    5569              :                     }
    5570              :                 }
    5571              :             }
    5572            0 :             switch (TREE_CODE (_q40))
    5573              :               {
    5574            0 :               case BIT_NOT_EXPR:
    5575            0 :                 {
    5576            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    5577            0 :                   {
    5578            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q41, _p0 };
    5579            0 :                     tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5580            0 :                     if (res) return res;
    5581              :                   }
    5582            0 :                   break;
    5583              :                 }
    5584            0 :               default:;
    5585              :               }
    5586            0 :             switch (TREE_CODE (_q41))
    5587              :               {
    5588            0 :               case BIT_NOT_EXPR:
    5589            0 :                 {
    5590            0 :                   tree _q60 = TREE_OPERAND (_q41, 0);
    5591            0 :                   {
    5592            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q60, _q40, _p0 };
    5593            0 :                     tree res = generic_simplify_19 (loc, type, _p0, _p1, captures);
    5594            0 :                     if (res) return res;
    5595              :                   }
    5596            0 :                   break;
    5597              :                 }
    5598              :               default:;
    5599              :               }
    5600              :             break;
    5601              :           }
    5602              :         default:;
    5603              :         }
    5604              :     }
    5605              : }
    5606      1043433 :   switch (TREE_CODE (_p0))
    5607              :     {
    5608       667299 :     CASE_CONVERT:
    5609       667299 :       {
    5610       667299 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5611       667299 :         switch (TREE_CODE (_q20))
    5612              :           {
    5613           50 :           case BIT_NOT_EXPR:
    5614           50 :             {
    5615           50 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5616           50 :               switch (TREE_CODE (_p1))
    5617              :                 {
    5618            0 :                 CASE_CONVERT:
    5619            0 :                   {
    5620            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5621            0 :                     switch (TREE_CODE (_q50))
    5622              :                       {
    5623            0 :                       case BIT_NOT_EXPR:
    5624            0 :                         {
    5625            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    5626            0 :                           {
    5627            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
    5628            0 :                             tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
    5629            0 :                             if (res) return res;
    5630              :                           }
    5631            0 :                           break;
    5632              :                         }
    5633              :                       default:;
    5634              :                       }
    5635              :                     break;
    5636              :                   }
    5637            0 :                 case BIT_NOT_EXPR:
    5638            0 :                   {
    5639            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5640            0 :                     {
    5641            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
    5642            0 :                       tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
    5643            0 :                       if (res) return res;
    5644              :                     }
    5645            0 :                     break;
    5646              :                   }
    5647           26 :                 case INTEGER_CST:
    5648           26 :                   {
    5649           26 :                     {
    5650           26 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
    5651           26 :                       tree res = generic_simplify_27 (loc, type, _p0, _p1, captures);
    5652           26 :                       if (res) return res;
    5653              :                     }
    5654           24 :                     break;
    5655              :                   }
    5656              :                 default:;
    5657              :                 }
    5658              :               break;
    5659              :             }
    5660              :           default:;
    5661              :           }
    5662              :         break;
    5663              :       }
    5664          484 :     case BIT_NOT_EXPR:
    5665          484 :       {
    5666          484 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5667          484 :         switch (TREE_CODE (_p1))
    5668              :           {
    5669           18 :           CASE_CONVERT:
    5670           18 :             {
    5671           18 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5672           18 :               switch (TREE_CODE (_q40))
    5673              :                 {
    5674            0 :                 case BIT_NOT_EXPR:
    5675            0 :                   {
    5676            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5677            0 :                     {
    5678            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    5679            0 :                       tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
    5680            0 :                       if (res) return res;
    5681              :                     }
    5682            0 :                     break;
    5683              :                   }
    5684              :                 default:;
    5685              :                 }
    5686              :               break;
    5687              :             }
    5688           10 :           case BIT_NOT_EXPR:
    5689           10 :             {
    5690           10 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5691           10 :               {
    5692           10 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    5693           10 :                 tree res = generic_simplify_26 (loc, type, _p0, _p1, captures);
    5694           10 :                 if (res) return res;
    5695              :               }
    5696            0 :               break;
    5697              :             }
    5698           31 :           case INTEGER_CST:
    5699           31 :             {
    5700           31 :               {
    5701           31 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    5702           31 :                 tree res = generic_simplify_27 (loc, type, _p0, _p1, captures);
    5703           31 :                 if (res) return res;
    5704              :               }
    5705            0 :               break;
    5706              :             }
    5707          443 :           default:;
    5708              :           }
    5709          443 :         {
    5710          443 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1 };
    5711          443 :           tree res = generic_simplify_28 (loc, type, _p0, _p1, captures);
    5712          443 :           if (res) return res;
    5713              :         }
    5714            0 :         break;
    5715              :       }
    5716         4094 :     case BIT_AND_EXPR:
    5717         4094 :       {
    5718         4094 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5719         4094 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5720         4094 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5721              :           {
    5722           75 :             {
    5723           75 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5724           75 :               tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5725           75 :               if (res) return res;
    5726              :             }
    5727              :           }
    5728         4019 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5729              :           {
    5730            3 :             {
    5731            3 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    5732            3 :               tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5733            3 :               if (res) return res;
    5734              :             }
    5735              :           }
    5736         4016 :         switch (TREE_CODE (_p1))
    5737              :           {
    5738          353 :           case BIT_AND_EXPR:
    5739          353 :             {
    5740          353 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5741          353 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5742          353 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    5743              :                 {
    5744           21 :                   {
    5745           21 :                     tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q51, _q20 };
    5746           21 :                     tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5747           21 :                     if (res) return res;
    5748              :                   }
    5749              :                 }
    5750          332 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
    5751              :                 {
    5752            0 :                   {
    5753            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q20 };
    5754            0 :                     tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5755            0 :                     if (res) return res;
    5756              :                   }
    5757              :                 }
    5758          332 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
    5759              :                 {
    5760            0 :                   {
    5761            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q51, _q21 };
    5762            0 :                     tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5763            0 :                     if (res) return res;
    5764              :                   }
    5765              :                 }
    5766          332 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q21, 0))
    5767              :                 {
    5768          201 :                   {
    5769          201 :                     tree captures[4] ATTRIBUTE_UNUSED = { _q21, _q20, _q50, _q21 };
    5770          201 :                     tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5771          201 :                     if (res) return res;
    5772              :                   }
    5773              :                 }
    5774              :               break;
    5775              :             }
    5776              :           default:;
    5777              :           }
    5778              :         break;
    5779              :       }
    5780      1042647 :     default:;
    5781              :     }
    5782      1042647 :   switch (TREE_CODE (_p1))
    5783              :     {
    5784          608 :     case BIT_AND_EXPR:
    5785          608 :       {
    5786          608 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5787          608 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5788          608 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5789              :           {
    5790            0 :             {
    5791            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    5792            0 :               tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5793            0 :               if (res) return res;
    5794              :             }
    5795              :           }
    5796          608 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5797              :           {
    5798            1 :             {
    5799            1 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
    5800            1 :               tree res = generic_simplify_29 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5801            1 :               if (res) return res;
    5802              :             }
    5803              :           }
    5804              :         break;
    5805              :       }
    5806      1042646 :     default:;
    5807              :     }
    5808      1042646 :   switch (TREE_CODE (_p0))
    5809              :     {
    5810       667296 :     CASE_CONVERT:
    5811       667296 :       {
    5812       667296 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5813       667296 :         switch (TREE_CODE (_q20))
    5814              :           {
    5815           24 :           case BIT_AND_EXPR:
    5816           24 :             {
    5817           24 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5818           24 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5819           24 :               switch (TREE_CODE (_p1))
    5820              :                 {
    5821            8 :                 CASE_CONVERT:
    5822            8 :                   {
    5823            8 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5824            8 :                     switch (TREE_CODE (_q60))
    5825              :                       {
    5826            0 :                       case BIT_AND_EXPR:
    5827            0 :                         {
    5828            0 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    5829            0 :                           tree _q71 = TREE_OPERAND (_q60, 1);
    5830            0 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
    5831              :                             {
    5832            0 :                               {
    5833            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
    5834            0 :                                 tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5835            0 :                                 if (res) return res;
    5836              :                               }
    5837              :                             }
    5838            0 :                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
    5839              :                             {
    5840            0 :                               {
    5841            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
    5842            0 :                                 tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5843            0 :                                 if (res) return res;
    5844              :                               }
    5845              :                             }
    5846            0 :                           if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
    5847              :                             {
    5848            0 :                               {
    5849            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
    5850            0 :                                 tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5851            0 :                                 if (res) return res;
    5852              :                               }
    5853              :                             }
    5854            0 :                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
    5855              :                             {
    5856            0 :                               {
    5857            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
    5858            0 :                                 tree res = generic_simplify_30 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR);
    5859            0 :                                 if (res) return res;
    5860              :                               }
    5861              :                             }
    5862              :                           break;
    5863              :                         }
    5864              :                       default:;
    5865              :                       }
    5866              :                     break;
    5867              :                   }
    5868              :                 default:;
    5869              :                 }
    5870              :               break;
    5871              :             }
    5872        64709 :           case BIT_XOR_EXPR:
    5873        64709 :             {
    5874        64709 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5875        64709 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5876        64709 :               switch (TREE_CODE (_p1))
    5877              :                 {
    5878        64637 :                 CASE_CONVERT:
    5879        64637 :                   {
    5880        64637 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5881        64637 :                     if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
    5882              :                       {
    5883            0 :                         {
    5884            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
    5885            0 :                           tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    5886            0 :                           if (res) return res;
    5887              :                         }
    5888              :                       }
    5889        64637 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
    5890              :                       {
    5891            0 :                         {
    5892            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q30 };
    5893            0 :                           tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    5894            0 :                           if (res) return res;
    5895              :                         }
    5896              :                       }
    5897              :                     break;
    5898              :                   }
    5899        64709 :                 default:;
    5900              :                 }
    5901        64709 :               if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
    5902              :                 {
    5903            0 :                   {
    5904            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
    5905            0 :                     tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    5906            0 :                     if (res) return res;
    5907              :                   }
    5908              :                 }
    5909        64709 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
    5910              :                 {
    5911            0 :                   {
    5912            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q30 };
    5913            0 :                     tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    5914            0 :                     if (res) return res;
    5915              :                   }
    5916              :                 }
    5917              :               break;
    5918              :             }
    5919       667296 :           default:;
    5920              :           }
    5921       667296 :         switch (TREE_CODE (_p1))
    5922              :           {
    5923       663153 :           CASE_CONVERT:
    5924       663153 :             {
    5925       663153 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5926       663153 :               switch (TREE_CODE (_q40))
    5927              :                 {
    5928            0 :                 case BIT_XOR_EXPR:
    5929            0 :                   {
    5930            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5931            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    5932            0 :                     if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
    5933              :                       {
    5934            0 :                         {
    5935            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
    5936            0 :                           tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    5937            0 :                           if (res) return res;
    5938              :                         }
    5939              :                       }
    5940            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    5941              :                       {
    5942            0 :                         {
    5943            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
    5944            0 :                           tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    5945            0 :                           if (res) return res;
    5946              :                         }
    5947              :                       }
    5948              :                     break;
    5949              :                   }
    5950              :                 default:;
    5951              :                 }
    5952              :               break;
    5953              :             }
    5954            2 :           case BIT_XOR_EXPR:
    5955            2 :             {
    5956            2 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5957            2 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5958            2 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
    5959              :                 {
    5960            0 :                   {
    5961            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
    5962            0 :                     tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    5963            0 :                     if (res) return res;
    5964              :                   }
    5965              :                 }
    5966            2 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
    5967              :                 {
    5968            0 :                   {
    5969            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
    5970            0 :                     tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    5971            0 :                     if (res) return res;
    5972              :                   }
    5973              :                 }
    5974              :               break;
    5975              :             }
    5976              :           default:;
    5977              :           }
    5978              :         break;
    5979              :       }
    5980      1042646 :     default:;
    5981              :     }
    5982      1042646 :   switch (TREE_CODE (_p1))
    5983              :     {
    5984       799889 :     CASE_CONVERT:
    5985       799889 :       {
    5986       799889 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5987       799889 :         switch (TREE_CODE (_q30))
    5988              :           {
    5989            8 :           case BIT_XOR_EXPR:
    5990            8 :             {
    5991            8 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5992            8 :               tree _q41 = TREE_OPERAND (_q30, 1);
    5993            8 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
    5994              :                 {
    5995            0 :                   {
    5996            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
    5997            0 :                     tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    5998            0 :                     if (res) return res;
    5999              :                   }
    6000              :                 }
    6001            8 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
    6002              :                 {
    6003            0 :                   {
    6004            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
    6005            0 :                     tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    6006            0 :                     if (res) return res;
    6007              :                   }
    6008              :                 }
    6009              :               break;
    6010              :             }
    6011              :           default:;
    6012              :           }
    6013              :         break;
    6014              :       }
    6015           86 :     case BIT_XOR_EXPR:
    6016           86 :       {
    6017           86 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6018           86 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6019           86 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
    6020              :           {
    6021            0 :             {
    6022            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
    6023            0 :               tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    6024            0 :               if (res) return res;
    6025              :             }
    6026              :           }
    6027           86 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
    6028              :           {
    6029            0 :             {
    6030            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
    6031            0 :               tree res = generic_simplify_24 (loc, type, _p0, _p1, captures);
    6032            0 :               if (res) return res;
    6033              :             }
    6034              :           }
    6035              :         break;
    6036              :       }
    6037      1042646 :     default:;
    6038              :     }
    6039      1042646 :   switch (TREE_CODE (_p0))
    6040              :     {
    6041       667296 :     CASE_CONVERT:
    6042       667296 :       {
    6043       667296 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6044       667296 :         switch (TREE_CODE (_q20))
    6045              :           {
    6046        64709 :           case BIT_XOR_EXPR:
    6047        64709 :             {
    6048        64709 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6049        64709 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6050        64709 :               switch (TREE_CODE (_p1))
    6051              :                 {
    6052        64637 :                 CASE_CONVERT:
    6053        64637 :                   {
    6054        64637 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    6055        64637 :                     switch (TREE_CODE (_q60))
    6056              :                       {
    6057            0 :                       case BIT_XOR_EXPR:
    6058            0 :                         {
    6059            0 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    6060            0 :                           tree _q71 = TREE_OPERAND (_q60, 1);
    6061            0 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    6062              :                             {
    6063            0 :                               {
    6064            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q71 };
    6065            0 :                                 tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6066            0 :                                 if (res) return res;
    6067              :                               }
    6068              :                             }
    6069            0 :                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    6070              :                             {
    6071            0 :                               {
    6072            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q70 };
    6073            0 :                                 tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6074            0 :                                 if (res) return res;
    6075              :                               }
    6076              :                             }
    6077            0 :                           if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    6078              :                             {
    6079            0 :                               {
    6080            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q71 };
    6081            0 :                                 tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6082            0 :                                 if (res) return res;
    6083              :                               }
    6084              :                             }
    6085            0 :                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    6086              :                             {
    6087            0 :                               {
    6088            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q70 };
    6089            0 :                                 tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6090            0 :                                 if (res) return res;
    6091              :                               }
    6092              :                             }
    6093              :                           break;
    6094              :                         }
    6095              :                       default:;
    6096              :                       }
    6097              :                     break;
    6098              :                   }
    6099            0 :                 case BIT_XOR_EXPR:
    6100            0 :                   {
    6101            0 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    6102            0 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    6103            0 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    6104              :                       {
    6105            0 :                         {
    6106            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q61 };
    6107            0 :                           tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6108            0 :                           if (res) return res;
    6109              :                         }
    6110              :                       }
    6111            0 :                     if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    6112              :                       {
    6113            0 :                         {
    6114            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    6115            0 :                           tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6116            0 :                           if (res) return res;
    6117              :                         }
    6118              :                       }
    6119            0 :                     if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    6120              :                       {
    6121            0 :                         {
    6122            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q61 };
    6123            0 :                           tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6124            0 :                           if (res) return res;
    6125              :                         }
    6126              :                       }
    6127            0 :                     if ((_q61 == _q31 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q31, 0) && types_match (_q61, _q31)))
    6128              :                       {
    6129            0 :                         {
    6130            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q60 };
    6131            0 :                           tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6132            0 :                           if (res) return res;
    6133              :                         }
    6134              :                       }
    6135              :                     break;
    6136              :                   }
    6137              :                 default:;
    6138              :                 }
    6139              :               break;
    6140              :             }
    6141       667296 :           default:;
    6142              :           }
    6143       667296 :         switch (TREE_CODE (_p1))
    6144              :           {
    6145       663153 :           CASE_CONVERT:
    6146       663153 :             {
    6147       663153 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6148       663153 :               {
    6149       663153 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    6150       663153 :                 tree res = generic_simplify_32 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    6151       663153 :                 if (res) return res;
    6152              :               }
    6153       569751 :               break;
    6154              :             }
    6155       573894 :           default:;
    6156              :           }
    6157       573894 :         {
    6158       573894 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
    6159       573894 :           tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    6160       573894 :           if (res) return res;
    6161              :         }
    6162       573786 :         break;
    6163              :       }
    6164         4034 :     case BIT_XOR_EXPR:
    6165         4034 :       {
    6166         4034 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6167         4034 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6168         4034 :         switch (TREE_CODE (_p1))
    6169              :           {
    6170          202 :           CASE_CONVERT:
    6171          202 :             {
    6172          202 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6173          202 :               switch (TREE_CODE (_q50))
    6174              :                 {
    6175            0 :                 case BIT_XOR_EXPR:
    6176            0 :                   {
    6177            0 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    6178            0 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    6179            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6180              :                       {
    6181            0 :                         {
    6182            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q61 };
    6183            0 :                           tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6184            0 :                           if (res) return res;
    6185              :                         }
    6186              :                       }
    6187            0 :                     if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
    6188              :                       {
    6189            0 :                         {
    6190            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q60 };
    6191            0 :                           tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6192            0 :                           if (res) return res;
    6193              :                         }
    6194              :                       }
    6195            0 :                     if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
    6196              :                       {
    6197            0 :                         {
    6198            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q61 };
    6199            0 :                           tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6200            0 :                           if (res) return res;
    6201              :                         }
    6202              :                       }
    6203            0 :                     if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    6204              :                       {
    6205            0 :                         {
    6206            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q60 };
    6207            0 :                           tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6208            0 :                           if (res) return res;
    6209              :                         }
    6210              :                       }
    6211              :                     break;
    6212              :                   }
    6213              :                 default:;
    6214              :                 }
    6215              :               break;
    6216              :             }
    6217           18 :           case BIT_XOR_EXPR:
    6218           18 :             {
    6219           18 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6220           18 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6221           18 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6222              :                 {
    6223            0 :                   {
    6224            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    6225            0 :                     tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6226            0 :                     if (res) return res;
    6227              :                   }
    6228              :                 }
    6229           18 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6230              :                 {
    6231            0 :                   {
    6232            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    6233            0 :                     tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6234            0 :                     if (res) return res;
    6235              :                   }
    6236              :                 }
    6237           18 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6238              :                 {
    6239            0 :                   {
    6240            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    6241            0 :                     tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6242            0 :                     if (res) return res;
    6243              :                   }
    6244              :                 }
    6245           18 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6246              :                 {
    6247            0 :                   {
    6248            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    6249            0 :                     tree res = generic_simplify_31 (loc, type, _p0, _p1, captures);
    6250            0 :                     if (res) return res;
    6251              :                   }
    6252              :                 }
    6253              :               break;
    6254              :             }
    6255              :           default:;
    6256              :           }
    6257              :         break;
    6258              :       }
    6259         3794 :     case BIT_AND_EXPR:
    6260         3794 :       {
    6261         3794 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6262         3794 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6263         3794 :         {
    6264         3794 :           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6265         3794 :           tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
    6266         3794 :           if (res) return res;
    6267              :         }
    6268         3794 :         {
    6269         3794 :           tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _p1 };
    6270         3794 :           tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
    6271         3794 :           if (res) return res;
    6272              :         }
    6273         3794 :         if (tree_truth_valued_p (_q20))
    6274              :           {
    6275            0 :             if (tree_truth_valued_p (_q21))
    6276              :               {
    6277            0 :                 switch (TREE_CODE (_p1))
    6278              :                   {
    6279            0 :                   case EQ_EXPR:
    6280            0 :                     {
    6281            0 :                       tree _q50 = TREE_OPERAND (_p1, 0);
    6282            0 :                       tree _q51 = TREE_OPERAND (_p1, 1);
    6283            0 :                       if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6284              :                         {
    6285            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6286              :                             {
    6287            0 :                               {
    6288            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6289            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1172;
    6290            0 :                                 {
    6291            0 :                                   tree res_op0;
    6292            0 :                                   {
    6293            0 :                                     tree _o1[2], _r1;
    6294            0 :                                     _o1[0] = captures[0];
    6295            0 :                                     _o1[1] = captures[1];
    6296            0 :                                     _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    6297            0 :                                     res_op0 = _r1;
    6298              :                                   }
    6299            0 :                                   tree _r;
    6300            0 :                                   _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    6301            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
    6302            0 :                                   return _r;
    6303              :                                 }
    6304            0 : next_after_fail1172:;
    6305              :                               }
    6306              :                             }
    6307              :                         }
    6308            0 :                       if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6309              :                         {
    6310            0 :                           if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6311              :                             {
    6312            0 :                               {
    6313            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6314            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1173;
    6315            0 :                                 {
    6316            0 :                                   tree res_op0;
    6317            0 :                                   {
    6318            0 :                                     tree _o1[2], _r1;
    6319            0 :                                     _o1[0] = captures[0];
    6320            0 :                                     _o1[1] = captures[1];
    6321            0 :                                     _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    6322            0 :                                     res_op0 = _r1;
    6323              :                                   }
    6324            0 :                                   tree _r;
    6325            0 :                                   _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    6326            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
    6327            0 :                                   return _r;
    6328              :                                 }
    6329            0 : next_after_fail1173:;
    6330              :                               }
    6331              :                             }
    6332              :                         }
    6333              :                       break;
    6334              :                     }
    6335              :                   default:;
    6336              :                   }
    6337              :               }
    6338              :           }
    6339              :         break;
    6340              :       }
    6341       949136 :     default:;
    6342              :     }
    6343       949136 :   switch (TREE_CODE (_p1))
    6344              :     {
    6345          607 :     case BIT_AND_EXPR:
    6346          607 :       {
    6347          607 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6348          607 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6349          607 :         {
    6350          607 :           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
    6351          607 :           tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
    6352          607 :           if (res) return res;
    6353              :         }
    6354          607 :         {
    6355          607 :           tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _p0 };
    6356          607 :           tree res = generic_simplify_34 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR);
    6357          607 :           if (res) return res;
    6358              :         }
    6359          607 :         break;
    6360              :       }
    6361       949136 :     default:;
    6362              :     }
    6363       949136 :   switch (TREE_CODE (_p0))
    6364              :     {
    6365         4034 :     case BIT_XOR_EXPR:
    6366         4034 :       {
    6367         4034 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6368         4034 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6369         4034 :         if (CONSTANT_CLASS_P (_q21))
    6370              :           {
    6371           49 :             if (CONSTANT_CLASS_P (_p1))
    6372              :               {
    6373           30 :                 {
    6374           30 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6375           30 :                   tree res = generic_simplify_35 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    6376           30 :                   if (res) return res;
    6377              :                 }
    6378              :               }
    6379              :           }
    6380              :         break;
    6381              :       }
    6382           70 :     case COND_EXPR:
    6383           70 :       {
    6384           70 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6385           70 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6386           70 :         tree _q22 = TREE_OPERAND (_p0, 2);
    6387           70 :         if (integer_zerop (_q22))
    6388              :           {
    6389           70 :             switch (TREE_CODE (_p1))
    6390              :               {
    6391            4 :               case COND_EXPR:
    6392            4 :                 {
    6393            4 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    6394            4 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    6395            4 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    6396            4 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6397              :                     {
    6398            0 :                       if (integer_zerop (_q61))
    6399              :                         {
    6400            0 :                           {
    6401            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
    6402            0 :                             const enum tree_code op = BIT_XOR_EXPR;
    6403            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1174;
    6404            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1174;
    6405            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1174;
    6406            0 :                             {
    6407            0 :                               tree res_op0;
    6408            0 :                               res_op0 = captures[1];
    6409            0 :                               tree res_op1;
    6410            0 :                               res_op1 = captures[2];
    6411            0 :                               tree res_op2;
    6412            0 :                               res_op2 = captures[4];
    6413            0 :                               tree _r;
    6414            0 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    6415            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    6416            0 :                               return _r;
    6417              :                             }
    6418            0 : next_after_fail1174:;
    6419              :                           }
    6420              :                         }
    6421              :                     }
    6422              :                   break;
    6423              :                 }
    6424              :               default:;
    6425              :               }
    6426              :           }
    6427           70 :         if (integer_zerop (_q21))
    6428              :           {
    6429            0 :             switch (TREE_CODE (_p1))
    6430              :               {
    6431            0 :               case COND_EXPR:
    6432            0 :                 {
    6433            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    6434            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    6435            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    6436            0 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6437              :                     {
    6438            0 :                       if (integer_zerop (_q62))
    6439              :                         {
    6440            0 :                           {
    6441            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
    6442            0 :                             const enum tree_code op = BIT_XOR_EXPR;
    6443            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1175;
    6444            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1175;
    6445            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1175;
    6446            0 :                             {
    6447            0 :                               tree res_op0;
    6448            0 :                               res_op0 = captures[1];
    6449            0 :                               tree res_op1;
    6450            0 :                               res_op1 = captures[2];
    6451            0 :                               tree res_op2;
    6452            0 :                               res_op2 = captures[4];
    6453            0 :                               tree _r;
    6454            0 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    6455            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    6456            0 :                               return _r;
    6457              :                             }
    6458            0 : next_after_fail1175:;
    6459              :                           }
    6460              :                         }
    6461              :                     }
    6462              :                   break;
    6463              :                 }
    6464              :               default:;
    6465              :               }
    6466              :           }
    6467           70 :         switch (TREE_CODE (_q20))
    6468              :           {
    6469            0 :           case LT_EXPR:
    6470            0 :             {
    6471            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6472            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6473            0 :               if (zerop (_q22))
    6474              :                 {
    6475            0 :                   switch (TREE_CODE (_p1))
    6476              :                     {
    6477            0 :                     case COND_EXPR:
    6478            0 :                       {
    6479            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6480            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6481            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6482            0 :                         switch (TREE_CODE (_q80))
    6483              :                           {
    6484            0 :                           case GE_EXPR:
    6485            0 :                             {
    6486            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6487            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6488            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6489              :                                 {
    6490            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6491              :                                     {
    6492            0 :                                       if (zerop (_q82))
    6493              :                                         {
    6494            0 :                                           {
    6495            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6496            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LT_EXPR, GE_EXPR);
    6497            0 :                                             if (res) return res;
    6498              :                                           }
    6499              :                                         }
    6500              :                                     }
    6501              :                                 }
    6502              :                               break;
    6503              :                             }
    6504              :                           default:;
    6505              :                           }
    6506              :                         break;
    6507              :                       }
    6508              :                     default:;
    6509              :                     }
    6510              :                 }
    6511              :               break;
    6512              :             }
    6513           38 :           case LE_EXPR:
    6514           38 :             {
    6515           38 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6516           38 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6517           38 :               if (zerop (_q22))
    6518              :                 {
    6519           38 :                   switch (TREE_CODE (_p1))
    6520              :                     {
    6521            0 :                     case COND_EXPR:
    6522            0 :                       {
    6523            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6524            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6525            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6526            0 :                         switch (TREE_CODE (_q80))
    6527              :                           {
    6528            0 :                           case GT_EXPR:
    6529            0 :                             {
    6530            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6531            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6532            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6533              :                                 {
    6534            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6535              :                                     {
    6536            0 :                                       if (zerop (_q82))
    6537              :                                         {
    6538            0 :                                           {
    6539            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6540            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LE_EXPR, GT_EXPR);
    6541            0 :                                             if (res) return res;
    6542              :                                           }
    6543              :                                         }
    6544              :                                     }
    6545              :                                 }
    6546              :                               break;
    6547              :                             }
    6548              :                           default:;
    6549              :                           }
    6550              :                         break;
    6551              :                       }
    6552              :                     default:;
    6553              :                     }
    6554              :                 }
    6555              :               break;
    6556              :             }
    6557            0 :           case EQ_EXPR:
    6558            0 :             {
    6559            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6560            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6561            0 :               if (zerop (_q22))
    6562              :                 {
    6563            0 :                   switch (TREE_CODE (_p1))
    6564              :                     {
    6565            0 :                     case COND_EXPR:
    6566            0 :                       {
    6567            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6568            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6569            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6570            0 :                         switch (TREE_CODE (_q80))
    6571              :                           {
    6572            0 :                           case NE_EXPR:
    6573            0 :                             {
    6574            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6575            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6576            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6577              :                                 {
    6578            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6579              :                                     {
    6580            0 :                                       if (zerop (_q82))
    6581              :                                         {
    6582            0 :                                           {
    6583            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6584            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, EQ_EXPR, NE_EXPR);
    6585            0 :                                             if (res) return res;
    6586              :                                           }
    6587              :                                         }
    6588              :                                     }
    6589              :                                 }
    6590              :                               break;
    6591              :                             }
    6592              :                           default:;
    6593              :                           }
    6594              :                         break;
    6595              :                       }
    6596              :                     default:;
    6597              :                     }
    6598              :                 }
    6599              :               break;
    6600              :             }
    6601           32 :           case NE_EXPR:
    6602           32 :             {
    6603           32 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6604           32 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6605           32 :               if (zerop (_q22))
    6606              :                 {
    6607           32 :                   switch (TREE_CODE (_p1))
    6608              :                     {
    6609            4 :                     case COND_EXPR:
    6610            4 :                       {
    6611            4 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6612            4 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6613            4 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6614            4 :                         switch (TREE_CODE (_q80))
    6615              :                           {
    6616            0 :                           case EQ_EXPR:
    6617            0 :                             {
    6618            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6619            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6620            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6621              :                                 {
    6622            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6623              :                                     {
    6624            0 :                                       if (zerop (_q82))
    6625              :                                         {
    6626            0 :                                           {
    6627            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6628            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, NE_EXPR, EQ_EXPR);
    6629            0 :                                             if (res) return res;
    6630              :                                           }
    6631              :                                         }
    6632              :                                     }
    6633              :                                 }
    6634              :                               break;
    6635              :                             }
    6636              :                           default:;
    6637              :                           }
    6638              :                         break;
    6639              :                       }
    6640              :                     default:;
    6641              :                     }
    6642              :                 }
    6643              :               break;
    6644              :             }
    6645            0 :           case GE_EXPR:
    6646            0 :             {
    6647            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6648            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6649            0 :               if (zerop (_q22))
    6650              :                 {
    6651            0 :                   switch (TREE_CODE (_p1))
    6652              :                     {
    6653            0 :                     case COND_EXPR:
    6654            0 :                       {
    6655            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6656            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6657            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6658            0 :                         switch (TREE_CODE (_q80))
    6659              :                           {
    6660            0 :                           case LT_EXPR:
    6661            0 :                             {
    6662            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6663            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6664            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6665              :                                 {
    6666            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6667              :                                     {
    6668            0 :                                       if (zerop (_q82))
    6669              :                                         {
    6670            0 :                                           {
    6671            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6672            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GE_EXPR, LT_EXPR);
    6673            0 :                                             if (res) return res;
    6674              :                                           }
    6675              :                                         }
    6676              :                                     }
    6677              :                                 }
    6678              :                               break;
    6679              :                             }
    6680              :                           default:;
    6681              :                           }
    6682              :                         break;
    6683              :                       }
    6684              :                     default:;
    6685              :                     }
    6686              :                 }
    6687              :               break;
    6688              :             }
    6689            0 :           case GT_EXPR:
    6690            0 :             {
    6691            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6692            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6693            0 :               if (zerop (_q22))
    6694              :                 {
    6695            0 :                   switch (TREE_CODE (_p1))
    6696              :                     {
    6697            0 :                     case COND_EXPR:
    6698            0 :                       {
    6699            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6700            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6701            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6702            0 :                         switch (TREE_CODE (_q80))
    6703              :                           {
    6704            0 :                           case LE_EXPR:
    6705            0 :                             {
    6706            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6707            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6708            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6709              :                                 {
    6710            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6711              :                                     {
    6712            0 :                                       if (zerop (_q82))
    6713              :                                         {
    6714            0 :                                           {
    6715            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6716            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GT_EXPR, LE_EXPR);
    6717            0 :                                             if (res) return res;
    6718              :                                           }
    6719              :                                         }
    6720              :                                     }
    6721              :                                 }
    6722              :                               break;
    6723              :                             }
    6724              :                           default:;
    6725              :                           }
    6726              :                         break;
    6727              :                       }
    6728              :                     default:;
    6729              :                     }
    6730              :                 }
    6731              :               break;
    6732              :             }
    6733            0 :           case UNORDERED_EXPR:
    6734            0 :             {
    6735            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6736            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6737            0 :               if (zerop (_q22))
    6738              :                 {
    6739            0 :                   switch (TREE_CODE (_p1))
    6740              :                     {
    6741            0 :                     case COND_EXPR:
    6742            0 :                       {
    6743            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6744            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6745            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6746            0 :                         switch (TREE_CODE (_q80))
    6747              :                           {
    6748            0 :                           case ORDERED_EXPR:
    6749            0 :                             {
    6750            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6751            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6752            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6753              :                                 {
    6754            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6755              :                                     {
    6756            0 :                                       if (zerop (_q82))
    6757              :                                         {
    6758            0 :                                           {
    6759            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6760            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
    6761            0 :                                             if (res) return res;
    6762              :                                           }
    6763              :                                         }
    6764              :                                     }
    6765              :                                 }
    6766              :                               break;
    6767              :                             }
    6768              :                           default:;
    6769              :                           }
    6770              :                         break;
    6771              :                       }
    6772              :                     default:;
    6773              :                     }
    6774              :                 }
    6775              :               break;
    6776              :             }
    6777            0 :           case ORDERED_EXPR:
    6778            0 :             {
    6779            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6780            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6781            0 :               if (zerop (_q22))
    6782              :                 {
    6783            0 :                   switch (TREE_CODE (_p1))
    6784              :                     {
    6785            0 :                     case COND_EXPR:
    6786            0 :                       {
    6787            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6788            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6789            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6790            0 :                         switch (TREE_CODE (_q80))
    6791              :                           {
    6792            0 :                           case UNORDERED_EXPR:
    6793            0 :                             {
    6794            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6795            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6796            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6797              :                                 {
    6798            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6799              :                                     {
    6800            0 :                                       if (zerop (_q82))
    6801              :                                         {
    6802            0 :                                           {
    6803            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6804            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
    6805            0 :                                             if (res) return res;
    6806              :                                           }
    6807              :                                         }
    6808              :                                     }
    6809              :                                 }
    6810              :                               break;
    6811              :                             }
    6812              :                           default:;
    6813              :                           }
    6814              :                         break;
    6815              :                       }
    6816              :                     default:;
    6817              :                     }
    6818              :                 }
    6819              :               break;
    6820              :             }
    6821            0 :           case UNLT_EXPR:
    6822            0 :             {
    6823            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6824            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6825            0 :               if (zerop (_q22))
    6826              :                 {
    6827            0 :                   switch (TREE_CODE (_p1))
    6828              :                     {
    6829            0 :                     case COND_EXPR:
    6830            0 :                       {
    6831            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6832            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6833            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6834            0 :                         switch (TREE_CODE (_q80))
    6835              :                           {
    6836            0 :                           case GE_EXPR:
    6837            0 :                             {
    6838            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6839            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6840            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6841              :                                 {
    6842            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6843              :                                     {
    6844            0 :                                       if (zerop (_q82))
    6845              :                                         {
    6846            0 :                                           {
    6847            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6848            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLT_EXPR, GE_EXPR);
    6849            0 :                                             if (res) return res;
    6850              :                                           }
    6851              :                                         }
    6852              :                                     }
    6853              :                                 }
    6854              :                               break;
    6855              :                             }
    6856              :                           default:;
    6857              :                           }
    6858              :                         break;
    6859              :                       }
    6860              :                     default:;
    6861              :                     }
    6862              :                 }
    6863              :               break;
    6864              :             }
    6865            0 :           case UNLE_EXPR:
    6866            0 :             {
    6867            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6868            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6869            0 :               if (zerop (_q22))
    6870              :                 {
    6871            0 :                   switch (TREE_CODE (_p1))
    6872              :                     {
    6873            0 :                     case COND_EXPR:
    6874            0 :                       {
    6875            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6876            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6877            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6878            0 :                         switch (TREE_CODE (_q80))
    6879              :                           {
    6880            0 :                           case GT_EXPR:
    6881            0 :                             {
    6882            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6883            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6884            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6885              :                                 {
    6886            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6887              :                                     {
    6888            0 :                                       if (zerop (_q82))
    6889              :                                         {
    6890            0 :                                           {
    6891            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6892            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLE_EXPR, GT_EXPR);
    6893            0 :                                             if (res) return res;
    6894              :                                           }
    6895              :                                         }
    6896              :                                     }
    6897              :                                 }
    6898              :                               break;
    6899              :                             }
    6900              :                           default:;
    6901              :                           }
    6902              :                         break;
    6903              :                       }
    6904              :                     default:;
    6905              :                     }
    6906              :                 }
    6907              :               break;
    6908              :             }
    6909            0 :           case UNGT_EXPR:
    6910            0 :             {
    6911            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6912            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6913            0 :               if (zerop (_q22))
    6914              :                 {
    6915            0 :                   switch (TREE_CODE (_p1))
    6916              :                     {
    6917            0 :                     case COND_EXPR:
    6918            0 :                       {
    6919            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6920            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6921            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6922            0 :                         switch (TREE_CODE (_q80))
    6923              :                           {
    6924            0 :                           case LE_EXPR:
    6925            0 :                             {
    6926            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6927            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6928            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6929              :                                 {
    6930            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6931              :                                     {
    6932            0 :                                       if (zerop (_q82))
    6933              :                                         {
    6934            0 :                                           {
    6935            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6936            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGT_EXPR, LE_EXPR);
    6937            0 :                                             if (res) return res;
    6938              :                                           }
    6939              :                                         }
    6940              :                                     }
    6941              :                                 }
    6942              :                               break;
    6943              :                             }
    6944              :                           default:;
    6945              :                           }
    6946              :                         break;
    6947              :                       }
    6948              :                     default:;
    6949              :                     }
    6950              :                 }
    6951              :               break;
    6952              :             }
    6953            0 :           case UNGE_EXPR:
    6954            0 :             {
    6955            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6956            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6957            0 :               if (zerop (_q22))
    6958              :                 {
    6959            0 :                   switch (TREE_CODE (_p1))
    6960              :                     {
    6961            0 :                     case COND_EXPR:
    6962            0 :                       {
    6963            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    6964            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    6965            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    6966            0 :                         switch (TREE_CODE (_q80))
    6967              :                           {
    6968            0 :                           case LT_EXPR:
    6969            0 :                             {
    6970            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    6971            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    6972            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    6973              :                                 {
    6974            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    6975              :                                     {
    6976            0 :                                       if (zerop (_q82))
    6977              :                                         {
    6978            0 :                                           {
    6979            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    6980            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGE_EXPR, LT_EXPR);
    6981            0 :                                             if (res) return res;
    6982              :                                           }
    6983              :                                         }
    6984              :                                     }
    6985              :                                 }
    6986              :                               break;
    6987              :                             }
    6988              :                           default:;
    6989              :                           }
    6990              :                         break;
    6991              :                       }
    6992              :                     default:;
    6993              :                     }
    6994              :                 }
    6995              :               break;
    6996              :             }
    6997            0 :           case UNEQ_EXPR:
    6998            0 :             {
    6999            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7000            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7001            0 :               if (zerop (_q22))
    7002              :                 {
    7003            0 :                   switch (TREE_CODE (_p1))
    7004              :                     {
    7005            0 :                     case COND_EXPR:
    7006            0 :                       {
    7007            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7008            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7009            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7010            0 :                         switch (TREE_CODE (_q80))
    7011              :                           {
    7012            0 :                           case LTGT_EXPR:
    7013            0 :                             {
    7014            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7015            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7016            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7017              :                                 {
    7018            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7019              :                                     {
    7020            0 :                                       if (zerop (_q82))
    7021              :                                         {
    7022            0 :                                           {
    7023            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    7024            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNEQ_EXPR, LTGT_EXPR);
    7025            0 :                                             if (res) return res;
    7026              :                                           }
    7027              :                                         }
    7028              :                                     }
    7029              :                                 }
    7030              :                               break;
    7031              :                             }
    7032              :                           default:;
    7033              :                           }
    7034              :                         break;
    7035              :                       }
    7036              :                     default:;
    7037              :                     }
    7038              :                 }
    7039              :               break;
    7040              :             }
    7041            0 :           case LTGT_EXPR:
    7042            0 :             {
    7043            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7044            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7045            0 :               if (zerop (_q22))
    7046              :                 {
    7047            0 :                   switch (TREE_CODE (_p1))
    7048              :                     {
    7049            0 :                     case COND_EXPR:
    7050            0 :                       {
    7051            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7052            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7053            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7054            0 :                         switch (TREE_CODE (_q80))
    7055              :                           {
    7056            0 :                           case UNEQ_EXPR:
    7057            0 :                             {
    7058            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7059            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7060            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7061              :                                 {
    7062            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7063              :                                     {
    7064            0 :                                       if (zerop (_q82))
    7065              :                                         {
    7066            0 :                                           {
    7067            0 :                                             tree captures[6] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _q21, _q80, _q81 };
    7068            0 :                                             tree res = generic_simplify_37 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LTGT_EXPR, UNEQ_EXPR);
    7069            0 :                                             if (res) return res;
    7070              :                                           }
    7071              :                                         }
    7072              :                                     }
    7073              :                                 }
    7074              :                               break;
    7075              :                             }
    7076              :                           default:;
    7077              :                           }
    7078              :                         break;
    7079              :                       }
    7080              :                     default:;
    7081              :                     }
    7082              :                 }
    7083              :               break;
    7084              :             }
    7085              :           default:;
    7086              :           }
    7087              :         break;
    7088              :       }
    7089            1 :     case VEC_COND_EXPR:
    7090            1 :       {
    7091            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7092            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7093            1 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7094            1 :         if (integer_zerop (_q22))
    7095              :           {
    7096            1 :             switch (TREE_CODE (_p1))
    7097              :               {
    7098            0 :               case VEC_COND_EXPR:
    7099            0 :                 {
    7100            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    7101            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    7102            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    7103            0 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7104              :                     {
    7105            0 :                       if (integer_zerop (_q61))
    7106              :                         {
    7107            0 :                           {
    7108            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q62 };
    7109            0 :                             const enum tree_code op = BIT_XOR_EXPR;
    7110            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1176;
    7111            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1176;
    7112            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1176;
    7113            0 :                             {
    7114            0 :                               tree res_op0;
    7115            0 :                               res_op0 = captures[1];
    7116            0 :                               tree res_op1;
    7117            0 :                               res_op1 = captures[2];
    7118            0 :                               tree res_op2;
    7119            0 :                               res_op2 = captures[4];
    7120            0 :                               tree _r;
    7121            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7122            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    7123            0 :                               return _r;
    7124              :                             }
    7125            0 : next_after_fail1176:;
    7126              :                           }
    7127              :                         }
    7128              :                     }
    7129              :                   break;
    7130              :                 }
    7131              :               default:;
    7132              :               }
    7133              :           }
    7134            1 :         if (integer_zerop (_q21))
    7135              :           {
    7136            0 :             switch (TREE_CODE (_p1))
    7137              :               {
    7138            0 :               case VEC_COND_EXPR:
    7139            0 :                 {
    7140            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    7141            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    7142            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    7143            0 :                   if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7144              :                     {
    7145            0 :                       if (integer_zerop (_q62))
    7146              :                         {
    7147            0 :                           {
    7148            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q20, _q61, _p0, _q22 };
    7149            0 :                             const enum tree_code op = BIT_XOR_EXPR;
    7150            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1177;
    7151            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1177;
    7152            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1177;
    7153            0 :                             {
    7154            0 :                               tree res_op0;
    7155            0 :                               res_op0 = captures[1];
    7156            0 :                               tree res_op1;
    7157            0 :                               res_op1 = captures[2];
    7158            0 :                               tree res_op2;
    7159            0 :                               res_op2 = captures[4];
    7160            0 :                               tree _r;
    7161            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7162            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    7163            0 :                               return _r;
    7164              :                             }
    7165            0 : next_after_fail1177:;
    7166              :                           }
    7167              :                         }
    7168              :                     }
    7169              :                   break;
    7170              :                 }
    7171              :               default:;
    7172              :               }
    7173              :           }
    7174            1 :         switch (TREE_CODE (_q20))
    7175              :           {
    7176            0 :           case LT_EXPR:
    7177            0 :             {
    7178            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7179            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7180            0 :               if (integer_zerop (_q22))
    7181              :                 {
    7182            0 :                   switch (TREE_CODE (_p1))
    7183              :                     {
    7184            0 :                     case VEC_COND_EXPR:
    7185            0 :                       {
    7186            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7187            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7188            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7189            0 :                         switch (TREE_CODE (_q80))
    7190              :                           {
    7191            0 :                           case GE_EXPR:
    7192            0 :                             {
    7193            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7194            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7195            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7196              :                                 {
    7197            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7198              :                                     {
    7199            0 :                                       if (integer_zerop (_q82))
    7200              :                                         {
    7201            0 :                                           {
    7202            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7203            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LT_EXPR, GE_EXPR);
    7204            0 :                                             if (res) return res;
    7205              :                                           }
    7206              :                                         }
    7207              :                                     }
    7208              :                                 }
    7209              :                               break;
    7210              :                             }
    7211              :                           default:;
    7212              :                           }
    7213              :                         break;
    7214              :                       }
    7215              :                     default:;
    7216              :                     }
    7217              :                 }
    7218              :               break;
    7219              :             }
    7220            0 :           case LE_EXPR:
    7221            0 :             {
    7222            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7223            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7224            0 :               if (integer_zerop (_q22))
    7225              :                 {
    7226            0 :                   switch (TREE_CODE (_p1))
    7227              :                     {
    7228            0 :                     case VEC_COND_EXPR:
    7229            0 :                       {
    7230            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7231            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7232            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7233            0 :                         switch (TREE_CODE (_q80))
    7234              :                           {
    7235            0 :                           case GT_EXPR:
    7236            0 :                             {
    7237            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7238            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7239            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7240              :                                 {
    7241            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7242              :                                     {
    7243            0 :                                       if (integer_zerop (_q82))
    7244              :                                         {
    7245            0 :                                           {
    7246            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7247            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LE_EXPR, GT_EXPR);
    7248            0 :                                             if (res) return res;
    7249              :                                           }
    7250              :                                         }
    7251              :                                     }
    7252              :                                 }
    7253              :                               break;
    7254              :                             }
    7255              :                           default:;
    7256              :                           }
    7257              :                         break;
    7258              :                       }
    7259              :                     default:;
    7260              :                     }
    7261              :                 }
    7262              :               break;
    7263              :             }
    7264            0 :           case EQ_EXPR:
    7265            0 :             {
    7266            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7267            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7268            0 :               if (integer_zerop (_q22))
    7269              :                 {
    7270            0 :                   switch (TREE_CODE (_p1))
    7271              :                     {
    7272            0 :                     case VEC_COND_EXPR:
    7273            0 :                       {
    7274            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7275            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7276            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7277            0 :                         switch (TREE_CODE (_q80))
    7278              :                           {
    7279            0 :                           case NE_EXPR:
    7280            0 :                             {
    7281            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7282            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7283            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7284              :                                 {
    7285            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7286              :                                     {
    7287            0 :                                       if (integer_zerop (_q82))
    7288              :                                         {
    7289            0 :                                           {
    7290            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7291            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, EQ_EXPR, NE_EXPR);
    7292            0 :                                             if (res) return res;
    7293              :                                           }
    7294              :                                         }
    7295              :                                     }
    7296              :                                 }
    7297              :                               break;
    7298              :                             }
    7299              :                           default:;
    7300              :                           }
    7301              :                         break;
    7302              :                       }
    7303              :                     default:;
    7304              :                     }
    7305              :                 }
    7306              :               break;
    7307              :             }
    7308            1 :           case NE_EXPR:
    7309            1 :             {
    7310            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7311            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7312            1 :               if (integer_zerop (_q22))
    7313              :                 {
    7314            1 :                   switch (TREE_CODE (_p1))
    7315              :                     {
    7316            0 :                     case VEC_COND_EXPR:
    7317            0 :                       {
    7318            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7319            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7320            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7321            0 :                         switch (TREE_CODE (_q80))
    7322              :                           {
    7323            0 :                           case EQ_EXPR:
    7324            0 :                             {
    7325            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7326            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7327            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7328              :                                 {
    7329            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7330              :                                     {
    7331            0 :                                       if (integer_zerop (_q82))
    7332              :                                         {
    7333            0 :                                           {
    7334            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7335            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, NE_EXPR, EQ_EXPR);
    7336            0 :                                             if (res) return res;
    7337              :                                           }
    7338              :                                         }
    7339              :                                     }
    7340              :                                 }
    7341              :                               break;
    7342              :                             }
    7343              :                           default:;
    7344              :                           }
    7345              :                         break;
    7346              :                       }
    7347              :                     default:;
    7348              :                     }
    7349              :                 }
    7350              :               break;
    7351              :             }
    7352            0 :           case GE_EXPR:
    7353            0 :             {
    7354            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7355            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7356            0 :               if (integer_zerop (_q22))
    7357              :                 {
    7358            0 :                   switch (TREE_CODE (_p1))
    7359              :                     {
    7360            0 :                     case VEC_COND_EXPR:
    7361            0 :                       {
    7362            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7363            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7364            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7365            0 :                         switch (TREE_CODE (_q80))
    7366              :                           {
    7367            0 :                           case LT_EXPR:
    7368            0 :                             {
    7369            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7370            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7371            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7372              :                                 {
    7373            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7374              :                                     {
    7375            0 :                                       if (integer_zerop (_q82))
    7376              :                                         {
    7377            0 :                                           {
    7378            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7379            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GE_EXPR, LT_EXPR);
    7380            0 :                                             if (res) return res;
    7381              :                                           }
    7382              :                                         }
    7383              :                                     }
    7384              :                                 }
    7385              :                               break;
    7386              :                             }
    7387              :                           default:;
    7388              :                           }
    7389              :                         break;
    7390              :                       }
    7391              :                     default:;
    7392              :                     }
    7393              :                 }
    7394              :               break;
    7395              :             }
    7396            0 :           case GT_EXPR:
    7397            0 :             {
    7398            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7399            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7400            0 :               if (integer_zerop (_q22))
    7401              :                 {
    7402            0 :                   switch (TREE_CODE (_p1))
    7403              :                     {
    7404            0 :                     case VEC_COND_EXPR:
    7405            0 :                       {
    7406            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7407            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7408            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7409            0 :                         switch (TREE_CODE (_q80))
    7410              :                           {
    7411            0 :                           case LE_EXPR:
    7412            0 :                             {
    7413            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7414            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7415            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7416              :                                 {
    7417            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7418              :                                     {
    7419            0 :                                       if (integer_zerop (_q82))
    7420              :                                         {
    7421            0 :                                           {
    7422            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7423            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, GT_EXPR, LE_EXPR);
    7424            0 :                                             if (res) return res;
    7425              :                                           }
    7426              :                                         }
    7427              :                                     }
    7428              :                                 }
    7429              :                               break;
    7430              :                             }
    7431              :                           default:;
    7432              :                           }
    7433              :                         break;
    7434              :                       }
    7435              :                     default:;
    7436              :                     }
    7437              :                 }
    7438              :               break;
    7439              :             }
    7440            0 :           case UNORDERED_EXPR:
    7441            0 :             {
    7442            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7443            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7444            0 :               if (integer_zerop (_q22))
    7445              :                 {
    7446            0 :                   switch (TREE_CODE (_p1))
    7447              :                     {
    7448            0 :                     case VEC_COND_EXPR:
    7449            0 :                       {
    7450            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7451            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7452            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7453            0 :                         switch (TREE_CODE (_q80))
    7454              :                           {
    7455            0 :                           case ORDERED_EXPR:
    7456            0 :                             {
    7457            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7458            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7459            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7460              :                                 {
    7461            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7462              :                                     {
    7463            0 :                                       if (integer_zerop (_q82))
    7464              :                                         {
    7465            0 :                                           {
    7466            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7467            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNORDERED_EXPR, ORDERED_EXPR);
    7468            0 :                                             if (res) return res;
    7469              :                                           }
    7470              :                                         }
    7471              :                                     }
    7472              :                                 }
    7473              :                               break;
    7474              :                             }
    7475              :                           default:;
    7476              :                           }
    7477              :                         break;
    7478              :                       }
    7479              :                     default:;
    7480              :                     }
    7481              :                 }
    7482              :               break;
    7483              :             }
    7484            0 :           case ORDERED_EXPR:
    7485            0 :             {
    7486            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7487            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7488            0 :               if (integer_zerop (_q22))
    7489              :                 {
    7490            0 :                   switch (TREE_CODE (_p1))
    7491              :                     {
    7492            0 :                     case VEC_COND_EXPR:
    7493            0 :                       {
    7494            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7495            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7496            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7497            0 :                         switch (TREE_CODE (_q80))
    7498              :                           {
    7499            0 :                           case UNORDERED_EXPR:
    7500            0 :                             {
    7501            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7502            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7503            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7504              :                                 {
    7505            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7506              :                                     {
    7507            0 :                                       if (integer_zerop (_q82))
    7508              :                                         {
    7509            0 :                                           {
    7510            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7511            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, ORDERED_EXPR, UNORDERED_EXPR);
    7512            0 :                                             if (res) return res;
    7513              :                                           }
    7514              :                                         }
    7515              :                                     }
    7516              :                                 }
    7517              :                               break;
    7518              :                             }
    7519              :                           default:;
    7520              :                           }
    7521              :                         break;
    7522              :                       }
    7523              :                     default:;
    7524              :                     }
    7525              :                 }
    7526              :               break;
    7527              :             }
    7528            0 :           case UNLT_EXPR:
    7529            0 :             {
    7530            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7531            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7532            0 :               if (integer_zerop (_q22))
    7533              :                 {
    7534            0 :                   switch (TREE_CODE (_p1))
    7535              :                     {
    7536            0 :                     case VEC_COND_EXPR:
    7537            0 :                       {
    7538            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7539            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7540            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7541            0 :                         switch (TREE_CODE (_q80))
    7542              :                           {
    7543            0 :                           case GE_EXPR:
    7544            0 :                             {
    7545            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7546            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7547            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7548              :                                 {
    7549            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7550              :                                     {
    7551            0 :                                       if (integer_zerop (_q82))
    7552              :                                         {
    7553            0 :                                           {
    7554            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7555            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLT_EXPR, GE_EXPR);
    7556            0 :                                             if (res) return res;
    7557              :                                           }
    7558              :                                         }
    7559              :                                     }
    7560              :                                 }
    7561              :                               break;
    7562              :                             }
    7563              :                           default:;
    7564              :                           }
    7565              :                         break;
    7566              :                       }
    7567              :                     default:;
    7568              :                     }
    7569              :                 }
    7570              :               break;
    7571              :             }
    7572            0 :           case UNLE_EXPR:
    7573            0 :             {
    7574            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7575            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7576            0 :               if (integer_zerop (_q22))
    7577              :                 {
    7578            0 :                   switch (TREE_CODE (_p1))
    7579              :                     {
    7580            0 :                     case VEC_COND_EXPR:
    7581            0 :                       {
    7582            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7583            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7584            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7585            0 :                         switch (TREE_CODE (_q80))
    7586              :                           {
    7587            0 :                           case GT_EXPR:
    7588            0 :                             {
    7589            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7590            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7591            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7592              :                                 {
    7593            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7594              :                                     {
    7595            0 :                                       if (integer_zerop (_q82))
    7596              :                                         {
    7597            0 :                                           {
    7598            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7599            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNLE_EXPR, GT_EXPR);
    7600            0 :                                             if (res) return res;
    7601              :                                           }
    7602              :                                         }
    7603              :                                     }
    7604              :                                 }
    7605              :                               break;
    7606              :                             }
    7607              :                           default:;
    7608              :                           }
    7609              :                         break;
    7610              :                       }
    7611              :                     default:;
    7612              :                     }
    7613              :                 }
    7614              :               break;
    7615              :             }
    7616            0 :           case UNGT_EXPR:
    7617            0 :             {
    7618            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7619            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7620            0 :               if (integer_zerop (_q22))
    7621              :                 {
    7622            0 :                   switch (TREE_CODE (_p1))
    7623              :                     {
    7624            0 :                     case VEC_COND_EXPR:
    7625            0 :                       {
    7626            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7627            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7628            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7629            0 :                         switch (TREE_CODE (_q80))
    7630              :                           {
    7631            0 :                           case LE_EXPR:
    7632            0 :                             {
    7633            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7634            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7635            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7636              :                                 {
    7637            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7638              :                                     {
    7639            0 :                                       if (integer_zerop (_q82))
    7640              :                                         {
    7641            0 :                                           {
    7642            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7643            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGT_EXPR, LE_EXPR);
    7644            0 :                                             if (res) return res;
    7645              :                                           }
    7646              :                                         }
    7647              :                                     }
    7648              :                                 }
    7649              :                               break;
    7650              :                             }
    7651              :                           default:;
    7652              :                           }
    7653              :                         break;
    7654              :                       }
    7655              :                     default:;
    7656              :                     }
    7657              :                 }
    7658              :               break;
    7659              :             }
    7660            0 :           case UNGE_EXPR:
    7661            0 :             {
    7662            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7663            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7664            0 :               if (integer_zerop (_q22))
    7665              :                 {
    7666            0 :                   switch (TREE_CODE (_p1))
    7667              :                     {
    7668            0 :                     case VEC_COND_EXPR:
    7669            0 :                       {
    7670            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7671            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7672            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7673            0 :                         switch (TREE_CODE (_q80))
    7674              :                           {
    7675            0 :                           case LT_EXPR:
    7676            0 :                             {
    7677            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7678            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7679            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7680              :                                 {
    7681            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7682              :                                     {
    7683            0 :                                       if (integer_zerop (_q82))
    7684              :                                         {
    7685            0 :                                           {
    7686            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7687            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNGE_EXPR, LT_EXPR);
    7688            0 :                                             if (res) return res;
    7689              :                                           }
    7690              :                                         }
    7691              :                                     }
    7692              :                                 }
    7693              :                               break;
    7694              :                             }
    7695              :                           default:;
    7696              :                           }
    7697              :                         break;
    7698              :                       }
    7699              :                     default:;
    7700              :                     }
    7701              :                 }
    7702              :               break;
    7703              :             }
    7704            0 :           case UNEQ_EXPR:
    7705            0 :             {
    7706            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7707            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7708            0 :               if (integer_zerop (_q22))
    7709              :                 {
    7710            0 :                   switch (TREE_CODE (_p1))
    7711              :                     {
    7712            0 :                     case VEC_COND_EXPR:
    7713            0 :                       {
    7714            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7715            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7716            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7717            0 :                         switch (TREE_CODE (_q80))
    7718              :                           {
    7719            0 :                           case LTGT_EXPR:
    7720            0 :                             {
    7721            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7722            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7723            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7724              :                                 {
    7725            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7726              :                                     {
    7727            0 :                                       if (integer_zerop (_q82))
    7728              :                                         {
    7729            0 :                                           {
    7730            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7731            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, UNEQ_EXPR, LTGT_EXPR);
    7732            0 :                                             if (res) return res;
    7733              :                                           }
    7734              :                                         }
    7735              :                                     }
    7736              :                                 }
    7737              :                               break;
    7738              :                             }
    7739              :                           default:;
    7740              :                           }
    7741              :                         break;
    7742              :                       }
    7743              :                     default:;
    7744              :                     }
    7745              :                 }
    7746              :               break;
    7747              :             }
    7748            0 :           case LTGT_EXPR:
    7749            0 :             {
    7750            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7751            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7752            0 :               if (integer_zerop (_q22))
    7753              :                 {
    7754            0 :                   switch (TREE_CODE (_p1))
    7755              :                     {
    7756            0 :                     case VEC_COND_EXPR:
    7757            0 :                       {
    7758            0 :                         tree _q80 = TREE_OPERAND (_p1, 0);
    7759            0 :                         tree _q81 = TREE_OPERAND (_p1, 1);
    7760            0 :                         tree _q82 = TREE_OPERAND (_p1, 2);
    7761            0 :                         switch (TREE_CODE (_q80))
    7762              :                           {
    7763            0 :                           case UNEQ_EXPR:
    7764            0 :                             {
    7765            0 :                               tree _q90 = TREE_OPERAND (_q80, 0);
    7766            0 :                               tree _q91 = TREE_OPERAND (_q80, 1);
    7767            0 :                               if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    7768              :                                 {
    7769            0 :                                   if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    7770              :                                     {
    7771            0 :                                       if (integer_zerop (_q82))
    7772              :                                         {
    7773            0 :                                           {
    7774            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q80, _q81 };
    7775            0 :                                             tree res = generic_simplify_38 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LTGT_EXPR, UNEQ_EXPR);
    7776            0 :                                             if (res) return res;
    7777              :                                           }
    7778              :                                         }
    7779              :                                     }
    7780              :                                 }
    7781              :                               break;
    7782              :                             }
    7783              :                           default:;
    7784              :                           }
    7785              :                         break;
    7786              :                       }
    7787              :                     default:;
    7788              :                     }
    7789              :                 }
    7790              :               break;
    7791              :             }
    7792              :           default:;
    7793              :           }
    7794              :         break;
    7795              :       }
    7796          119 :     case EQ_EXPR:
    7797          119 :       {
    7798          119 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7799          119 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7800          119 :         switch (TREE_CODE (_p1))
    7801              :           {
    7802            0 :           case BIT_AND_EXPR:
    7803            0 :             {
    7804            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7805            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7806            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7807              :                 {
    7808            0 :                   if (tree_truth_valued_p (_q50))
    7809              :                     {
    7810            0 :                       if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7811              :                         {
    7812            0 :                           if (tree_truth_valued_p (_q51))
    7813              :                             {
    7814            0 :                               {
    7815            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7816            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1178;
    7817            0 :                                 {
    7818            0 :                                   tree res_op0;
    7819            0 :                                   {
    7820            0 :                                     tree _o1[2], _r1;
    7821            0 :                                     _o1[0] = captures[0];
    7822            0 :                                     _o1[1] = captures[1];
    7823            0 :                                     _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    7824            0 :                                     res_op0 = _r1;
    7825              :                                   }
    7826            0 :                                   tree _r;
    7827            0 :                                   _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    7828            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
    7829            0 :                                   return _r;
    7830              :                                 }
    7831            0 : next_after_fail1178:;
    7832              :                               }
    7833              :                             }
    7834              :                         }
    7835              :                     }
    7836              :                 }
    7837            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7838              :                 {
    7839            0 :                   if (tree_truth_valued_p (_q50))
    7840              :                     {
    7841            0 :                       if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7842              :                         {
    7843            0 :                           if (tree_truth_valued_p (_q51))
    7844              :                             {
    7845            0 :                               {
    7846            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7847            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1179;
    7848            0 :                                 {
    7849            0 :                                   tree res_op0;
    7850            0 :                                   {
    7851            0 :                                     tree _o1[2], _r1;
    7852            0 :                                     _o1[0] = captures[0];
    7853            0 :                                     _o1[1] = captures[1];
    7854            0 :                                     _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    7855            0 :                                     res_op0 = _r1;
    7856              :                                   }
    7857            0 :                                   tree _r;
    7858            0 :                                   _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    7859            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
    7860            0 :                                   return _r;
    7861              :                                 }
    7862            0 : next_after_fail1179:;
    7863              :                               }
    7864              :                             }
    7865              :                         }
    7866              :                     }
    7867              :                 }
    7868              :               break;
    7869              :             }
    7870              :           default:;
    7871              :           }
    7872              :         break;
    7873              :       }
    7874       949106 :     default:;
    7875              :     }
    7876       949106 : {
    7877       949106 :   tree _p0_pops[1];
    7878       949106 :   if (tree_logical_inverted_value (_p0, _p0_pops))
    7879              :     {
    7880           52 :       tree _q20 = _p0_pops[0];
    7881           52 :       if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7882              :         {
    7883            4 :           if (tree_truth_valued_p (_p1))
    7884              :             {
    7885            4 :               {
    7886            4 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    7887            4 :                 tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    7888            4 :                 if (res) return res;
    7889              :               }
    7890              :             }
    7891              :         }
    7892              :     }
    7893              : }
    7894       949102 : {
    7895       949102 :   tree _p0_pops[1];
    7896       949102 :   if (tree_nop_convert (_p0, _p0_pops))
    7897              :     {
    7898       529674 :       tree _q20 = _p0_pops[0];
    7899       529674 :       switch (TREE_CODE (_q20))
    7900              :         {
    7901           24 :         case BIT_NOT_EXPR:
    7902           24 :           {
    7903           24 :             tree _q30 = TREE_OPERAND (_q20, 0);
    7904           24 :             {
    7905           24 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1 };
    7906           24 :               tree res = generic_simplify_39 (loc, type, _p0, _p1, captures);
    7907           24 :               if (res) return res;
    7908              :             }
    7909            0 :             break;
    7910              :           }
    7911           20 :         case MULT_EXPR:
    7912           20 :           {
    7913           20 :             tree _q30 = TREE_OPERAND (_q20, 0);
    7914           20 :             tree _q31 = TREE_OPERAND (_q20, 1);
    7915           20 :             {
    7916           20 :               tree _q30_pops[1];
    7917           20 :               if (tree_nop_convert (_q30, _q30_pops))
    7918              :                 {
    7919            0 :                   tree _q40 = _q30_pops[0];
    7920            0 :                   switch (TREE_CODE (_q31))
    7921              :                     {
    7922            0 :                     case INTEGER_CST:
    7923            0 :                       {
    7924            0 :                         switch (TREE_CODE (_p1))
    7925              :                           {
    7926            0 :                           case LSHIFT_EXPR:
    7927            0 :                             {
    7928            0 :                               tree _q70 = TREE_OPERAND (_p1, 0);
    7929            0 :                               tree _q71 = TREE_OPERAND (_p1, 1);
    7930            0 :                               if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    7931              :                                 {
    7932            0 :                                   switch (TREE_CODE (_q71))
    7933              :                                     {
    7934            0 :                                     case INTEGER_CST:
    7935            0 :                                       {
    7936            0 :                                         {
    7937            0 :                                           tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31, _p1, _q71 };
    7938            0 :                                           tree res = generic_simplify_41 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    7939            0 :                                           if (res) return res;
    7940              :                                         }
    7941            0 :                                         break;
    7942              :                                       }
    7943              :                                     default:;
    7944              :                                     }
    7945              :                                 }
    7946              :                               break;
    7947              :                             }
    7948            0 :                           default:;
    7949              :                           }
    7950            0 :                       {
    7951            0 :                         tree _p1_pops[1];
    7952            0 :                         if (tree_nop_convert (_p1, _p1_pops))
    7953              :                           {
    7954            0 :                             tree _q70 = _p1_pops[0];
    7955            0 :                             switch (TREE_CODE (_q70))
    7956              :                               {
    7957            0 :                               case MULT_EXPR:
    7958            0 :                                 {
    7959            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7960            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7961            0 :                                   {
    7962            0 :                                     tree _q80_pops[1];
    7963            0 :                                     if (tree_nop_convert (_q80, _q80_pops))
    7964              :                                       {
    7965            0 :                                         tree _q90 = _q80_pops[0];
    7966            0 :                                         switch (TREE_CODE (_q81))
    7967              :                                           {
    7968            0 :                                           case INTEGER_CST:
    7969            0 :                                             {
    7970            0 :                                               {
    7971            0 :                                                 tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31, _p1, _q70, _q90, _q81 };
    7972            0 :                                                 tree res = generic_simplify_40 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    7973            0 :                                                 if (res) return res;
    7974              :                                               }
    7975            0 :                                               break;
    7976              :                                             }
    7977              :                                           default:;
    7978              :                                           }
    7979              :                                       }
    7980              :                                   }
    7981            0 :                                   break;
    7982              :                                 }
    7983              :                               default:;
    7984              :                               }
    7985              :                           }
    7986              :                       }
    7987            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    7988              :                           {
    7989            0 :                             {
    7990            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
    7991            0 :                               tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    7992            0 :                               if (res) return res;
    7993              :                             }
    7994              :                           }
    7995              :                         break;
    7996              :                       }
    7997              :                     default:;
    7998              :                     }
    7999              :                 }
    8000              :             }
    8001           20 :             break;
    8002              :           }
    8003              :         default:;
    8004              :         }
    8005              :     }
    8006              : }
    8007       949078 : if (tree_truth_valued_p (_p0))
    8008              :   {
    8009       144776 :     {
    8010       144776 :       tree _p1_pops[1];
    8011       144776 :       if (tree_logical_inverted_value (_p1, _p1_pops))
    8012              :         {
    8013           13 :           tree _q30 = _p1_pops[0];
    8014           13 :           if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    8015              :             {
    8016            0 :               {
    8017            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8018            0 :                 tree res = generic_simplify_36 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    8019            0 :                 if (res) return res;
    8020              :               }
    8021              :             }
    8022              :         }
    8023              :     }
    8024              :   }
    8025       949078 :   switch (TREE_CODE (_p1))
    8026              :     {
    8027          288 :     case BIT_NOT_EXPR:
    8028          288 :       {
    8029          288 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8030          288 :         {
    8031          288 :           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
    8032          288 :           tree res = generic_simplify_28 (loc, type, _p0, _p1, captures);
    8033          288 :           if (res) return res;
    8034              :         }
    8035            0 :         break;
    8036              :       }
    8037       948790 :     default:;
    8038              :     }
    8039       948790 : {
    8040       948790 :   tree _p1_pops[1];
    8041       948790 :   if (tree_nop_convert (_p1, _p1_pops))
    8042              :     {
    8043       664955 :       tree _q30 = _p1_pops[0];
    8044       664955 :       switch (TREE_CODE (_q30))
    8045              :         {
    8046            0 :         case BIT_NOT_EXPR:
    8047            0 :           {
    8048            0 :             tree _q40 = TREE_OPERAND (_q30, 0);
    8049            0 :             {
    8050            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
    8051            0 :               tree res = generic_simplify_39 (loc, type, _p0, _p1, captures);
    8052            0 :               if (res) return res;
    8053              :             }
    8054            0 :             break;
    8055              :           }
    8056              :         default:;
    8057              :         }
    8058              :     }
    8059              : }
    8060       948790 :   switch (TREE_CODE (_p0))
    8061              :     {
    8062         1131 :     case BIT_IOR_EXPR:
    8063         1131 :       {
    8064         1131 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8065         1131 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8066         1131 :         switch (TREE_CODE (_q21))
    8067              :           {
    8068           23 :           case INTEGER_CST:
    8069           23 :             {
    8070           23 :               switch (TREE_CODE (_p1))
    8071              :                 {
    8072           23 :                 case INTEGER_CST:
    8073           23 :                   {
    8074           23 :                     {
    8075           23 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    8076           23 :                       tree res = generic_simplify_43 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_XOR_EXPR);
    8077           23 :                       if (res) return res;
    8078              :                     }
    8079           23 :                     break;
    8080              :                   }
    8081              :                 default:;
    8082              :                 }
    8083              :               break;
    8084              :             }
    8085              :           default:;
    8086              :           }
    8087              :         break;
    8088              :       }
    8089           90 :     case LT_EXPR:
    8090           90 :       {
    8091           90 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8092           90 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8093           90 :         switch (TREE_CODE (_p1))
    8094              :           {
    8095            0 :           case GT_EXPR:
    8096            0 :             {
    8097            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8098            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8099            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8100              :                 {
    8101            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8102              :                     {
    8103            0 :                       {
    8104            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8105            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8106            0 :                         const enum tree_code cmp2 = GT_EXPR;
    8107            0 :                         const enum tree_code rcmp = NE_EXPR;
    8108            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8109            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8110            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8111            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8112              : )
    8113              :                           {
    8114            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1180;
    8115            0 :                             {
    8116            0 :                               tree res_op0;
    8117            0 :                               res_op0 = captures[0];
    8118            0 :                               tree res_op1;
    8119            0 :                               res_op1 = captures[1];
    8120            0 :                               tree _r;
    8121            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8122            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8123            0 :                               return _r;
    8124              :                             }
    8125            0 : next_after_fail1180:;
    8126              :                           }
    8127              :                       }
    8128              :                     }
    8129              :                 }
    8130              :               break;
    8131              :             }
    8132            0 :           case EQ_EXPR:
    8133            0 :             {
    8134            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8135            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8136            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8137              :                 {
    8138            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8139              :                     {
    8140            0 :                       {
    8141            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8142            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8143            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    8144            0 :                         const enum tree_code rcmp = LE_EXPR;
    8145            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8146            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8147            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8148            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8149              : )
    8150              :                           {
    8151            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1181;
    8152            0 :                             {
    8153            0 :                               tree res_op0;
    8154            0 :                               res_op0 = captures[0];
    8155            0 :                               tree res_op1;
    8156            0 :                               res_op1 = captures[1];
    8157            0 :                               tree _r;
    8158            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8159            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8160            0 :                               return _r;
    8161              :                             }
    8162            0 : next_after_fail1181:;
    8163              :                           }
    8164              :                       }
    8165              :                     }
    8166              :                 }
    8167              :               break;
    8168              :             }
    8169            0 :           case NE_EXPR:
    8170            0 :             {
    8171            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8172            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8173            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8174              :                 {
    8175            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8176              :                     {
    8177            0 :                       {
    8178            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8179            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8180            0 :                         const enum tree_code cmp2 = NE_EXPR;
    8181            0 :                         const enum tree_code rcmp = GT_EXPR;
    8182            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8183            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8184            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8185            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8186              : )
    8187              :                           {
    8188            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1182;
    8189            0 :                             {
    8190            0 :                               tree res_op0;
    8191            0 :                               res_op0 = captures[0];
    8192            0 :                               tree res_op1;
    8193            0 :                               res_op1 = captures[1];
    8194            0 :                               tree _r;
    8195            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8196            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8197            0 :                               return _r;
    8198              :                             }
    8199            0 : next_after_fail1182:;
    8200              :                           }
    8201              :                       }
    8202              :                     }
    8203              :                 }
    8204              :               break;
    8205              :             }
    8206              :           default:;
    8207              :           }
    8208              :         break;
    8209              :       }
    8210           85 :     case LE_EXPR:
    8211           85 :       {
    8212           85 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8213           85 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8214           85 :         switch (TREE_CODE (_p1))
    8215              :           {
    8216            0 :           case GE_EXPR:
    8217            0 :             {
    8218            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8219            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8220            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8221              :                 {
    8222            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8223              :                     {
    8224            0 :                       {
    8225            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8226            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8227            0 :                         const enum tree_code cmp2 = GE_EXPR;
    8228            0 :                         const enum tree_code rcmp = NE_EXPR;
    8229            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8230            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8231            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8232            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8233              : )
    8234              :                           {
    8235            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1183;
    8236            0 :                             {
    8237            0 :                               tree res_op0;
    8238            0 :                               res_op0 = captures[0];
    8239            0 :                               tree res_op1;
    8240            0 :                               res_op1 = captures[1];
    8241            0 :                               tree _r;
    8242            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8243            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8244            0 :                               return _r;
    8245              :                             }
    8246            0 : next_after_fail1183:;
    8247              :                           }
    8248              :                       }
    8249              :                     }
    8250              :                 }
    8251              :               break;
    8252              :             }
    8253            0 :           case EQ_EXPR:
    8254            0 :             {
    8255            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8256            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8257            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8258              :                 {
    8259            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8260              :                     {
    8261            0 :                       {
    8262            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8263            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8264            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    8265            0 :                         const enum tree_code rcmp = LT_EXPR;
    8266            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8267            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8268            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8269            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8270              : )
    8271              :                           {
    8272            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1184;
    8273            0 :                             {
    8274            0 :                               tree res_op0;
    8275            0 :                               res_op0 = captures[0];
    8276            0 :                               tree res_op1;
    8277            0 :                               res_op1 = captures[1];
    8278            0 :                               tree _r;
    8279            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8280            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8281            0 :                               return _r;
    8282              :                             }
    8283            0 : next_after_fail1184:;
    8284              :                           }
    8285              :                       }
    8286              :                     }
    8287              :                 }
    8288              :               break;
    8289              :             }
    8290            0 :           case NE_EXPR:
    8291            0 :             {
    8292            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8293            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8294            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8295              :                 {
    8296            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8297              :                     {
    8298            0 :                       {
    8299            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8300            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8301            0 :                         const enum tree_code cmp2 = NE_EXPR;
    8302            0 :                         const enum tree_code rcmp = GE_EXPR;
    8303            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8304            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8305            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8306            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8307              : )
    8308              :                           {
    8309            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1185;
    8310            0 :                             {
    8311            0 :                               tree res_op0;
    8312            0 :                               res_op0 = captures[0];
    8313            0 :                               tree res_op1;
    8314            0 :                               res_op1 = captures[1];
    8315            0 :                               tree _r;
    8316            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8317            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8318            0 :                               return _r;
    8319              :                             }
    8320            0 : next_after_fail1185:;
    8321              :                           }
    8322              :                       }
    8323              :                     }
    8324              :                 }
    8325              :               break;
    8326              :             }
    8327              :           default:;
    8328              :           }
    8329              :         break;
    8330              :       }
    8331          100 :     case GT_EXPR:
    8332          100 :       {
    8333          100 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8334          100 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8335          100 :         switch (TREE_CODE (_p1))
    8336              :           {
    8337            0 :           case GT_EXPR:
    8338            0 :             {
    8339            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8340            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8341            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8342              :                 {
    8343            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8344              :                     {
    8345            0 :                       {
    8346            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8347            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8348            0 :                         const enum tree_code cmp2 = GT_EXPR;
    8349            0 :                         const enum tree_code rcmp = NE_EXPR;
    8350            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8351            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8352            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8353            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8354              : )
    8355              :                           {
    8356            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1186;
    8357            0 :                             {
    8358            0 :                               tree res_op0;
    8359            0 :                               res_op0 = captures[0];
    8360            0 :                               tree res_op1;
    8361            0 :                               res_op1 = captures[1];
    8362            0 :                               tree _r;
    8363            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8364            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8365            0 :                               return _r;
    8366              :                             }
    8367            0 : next_after_fail1186:;
    8368              :                           }
    8369              :                       }
    8370            0 :                       {
    8371            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8372            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8373            0 :                         const enum tree_code cmp2 = GT_EXPR;
    8374            0 :                         const enum tree_code rcmp = NE_EXPR;
    8375            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8376            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8377            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8378            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8379              : )
    8380              :                           {
    8381            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1187;
    8382            0 :                             {
    8383            0 :                               tree res_op0;
    8384            0 :                               res_op0 = captures[0];
    8385            0 :                               tree res_op1;
    8386            0 :                               res_op1 = captures[1];
    8387            0 :                               tree _r;
    8388            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8389            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8390            0 :                               return _r;
    8391              :                             }
    8392            0 : next_after_fail1187:;
    8393              :                           }
    8394              :                       }
    8395              :                     }
    8396              :                 }
    8397              :               break;
    8398              :             }
    8399            0 :           case EQ_EXPR:
    8400            0 :             {
    8401            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8402            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8403            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8404              :                 {
    8405            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8406              :                     {
    8407            0 :                       {
    8408            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8409            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8410            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    8411            0 :                         const enum tree_code rcmp = LE_EXPR;
    8412            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8413            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8414            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8415            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8416              : )
    8417              :                           {
    8418            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1188;
    8419            0 :                             {
    8420            0 :                               tree res_op0;
    8421            0 :                               res_op0 = captures[0];
    8422            0 :                               tree res_op1;
    8423            0 :                               res_op1 = captures[1];
    8424            0 :                               tree _r;
    8425            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8426            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8427            0 :                               return _r;
    8428              :                             }
    8429            0 : next_after_fail1188:;
    8430              :                           }
    8431              :                       }
    8432              :                     }
    8433              :                 }
    8434              :               break;
    8435              :             }
    8436           12 :           case NE_EXPR:
    8437           12 :             {
    8438           12 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8439           12 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8440           12 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8441              :                 {
    8442            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8443              :                     {
    8444            0 :                       {
    8445            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8446            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8447            0 :                         const enum tree_code cmp2 = NE_EXPR;
    8448            0 :                         const enum tree_code rcmp = GT_EXPR;
    8449            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8450            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8451            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8452            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8453              : )
    8454              :                           {
    8455            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1189;
    8456            0 :                             {
    8457            0 :                               tree res_op0;
    8458            0 :                               res_op0 = captures[0];
    8459            0 :                               tree res_op1;
    8460            0 :                               res_op1 = captures[1];
    8461            0 :                               tree _r;
    8462            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8463            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8464            0 :                               return _r;
    8465              :                             }
    8466            0 : next_after_fail1189:;
    8467              :                           }
    8468              :                       }
    8469              :                     }
    8470              :                 }
    8471              :               break;
    8472              :             }
    8473            0 :           case LT_EXPR:
    8474            0 :             {
    8475            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8476            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8477            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8478              :                 {
    8479            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8480              :                     {
    8481            0 :                       {
    8482            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8483            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8484            0 :                         const enum tree_code cmp2 = GT_EXPR;
    8485            0 :                         const enum tree_code rcmp = NE_EXPR;
    8486            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8487            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8488            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8489            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8490              : )
    8491              :                           {
    8492            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1190;
    8493            0 :                             {
    8494            0 :                               tree res_op0;
    8495            0 :                               res_op0 = captures[0];
    8496            0 :                               tree res_op1;
    8497            0 :                               res_op1 = captures[1];
    8498            0 :                               tree _r;
    8499            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8500            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8501            0 :                               return _r;
    8502              :                             }
    8503            0 : next_after_fail1190:;
    8504              :                           }
    8505              :                       }
    8506              :                     }
    8507              :                 }
    8508              :               break;
    8509              :             }
    8510              :           default:;
    8511              :           }
    8512              :         break;
    8513              :       }
    8514           62 :     case GE_EXPR:
    8515           62 :       {
    8516           62 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8517           62 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8518           62 :         switch (TREE_CODE (_p1))
    8519              :           {
    8520            1 :           case GE_EXPR:
    8521            1 :             {
    8522            1 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8523            1 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8524            1 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8525              :                 {
    8526            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8527              :                     {
    8528            0 :                       {
    8529            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8530            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8531            0 :                         const enum tree_code cmp2 = GE_EXPR;
    8532            0 :                         const enum tree_code rcmp = NE_EXPR;
    8533            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8534            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8535            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8536            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8537              : )
    8538              :                           {
    8539            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1191;
    8540            0 :                             {
    8541            0 :                               tree res_op0;
    8542            0 :                               res_op0 = captures[0];
    8543            0 :                               tree res_op1;
    8544            0 :                               res_op1 = captures[1];
    8545            0 :                               tree _r;
    8546            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8547            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8548            0 :                               return _r;
    8549              :                             }
    8550            0 : next_after_fail1191:;
    8551              :                           }
    8552              :                       }
    8553            0 :                       {
    8554            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8555            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8556            0 :                         const enum tree_code cmp2 = GE_EXPR;
    8557            0 :                         const enum tree_code rcmp = NE_EXPR;
    8558            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8559            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8560            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8561            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8562              : )
    8563              :                           {
    8564            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1192;
    8565            0 :                             {
    8566            0 :                               tree res_op0;
    8567            0 :                               res_op0 = captures[0];
    8568            0 :                               tree res_op1;
    8569            0 :                               res_op1 = captures[1];
    8570            0 :                               tree _r;
    8571            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8572            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8573            0 :                               return _r;
    8574              :                             }
    8575            0 : next_after_fail1192:;
    8576              :                           }
    8577              :                       }
    8578              :                     }
    8579              :                 }
    8580              :               break;
    8581              :             }
    8582            0 :           case EQ_EXPR:
    8583            0 :             {
    8584            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8585            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8586            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8587              :                 {
    8588            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8589              :                     {
    8590            0 :                       {
    8591            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8592            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8593            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    8594            0 :                         const enum tree_code rcmp = LT_EXPR;
    8595            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8596            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8597            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8598            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8599              : )
    8600              :                           {
    8601            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1193;
    8602            0 :                             {
    8603            0 :                               tree res_op0;
    8604            0 :                               res_op0 = captures[0];
    8605            0 :                               tree res_op1;
    8606            0 :                               res_op1 = captures[1];
    8607            0 :                               tree _r;
    8608            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8609            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8610            0 :                               return _r;
    8611              :                             }
    8612            0 : next_after_fail1193:;
    8613              :                           }
    8614              :                       }
    8615              :                     }
    8616              :                 }
    8617              :               break;
    8618              :             }
    8619            8 :           case NE_EXPR:
    8620            8 :             {
    8621            8 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8622            8 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8623            8 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8624              :                 {
    8625            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8626              :                     {
    8627            0 :                       {
    8628            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8629            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8630            0 :                         const enum tree_code cmp2 = NE_EXPR;
    8631            0 :                         const enum tree_code rcmp = GE_EXPR;
    8632            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8633            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8634            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8635            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8636              : )
    8637              :                           {
    8638            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1194;
    8639            0 :                             {
    8640            0 :                               tree res_op0;
    8641            0 :                               res_op0 = captures[0];
    8642            0 :                               tree res_op1;
    8643            0 :                               res_op1 = captures[1];
    8644            0 :                               tree _r;
    8645            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8646            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8647            0 :                               return _r;
    8648              :                             }
    8649            0 : next_after_fail1194:;
    8650              :                           }
    8651              :                       }
    8652              :                     }
    8653              :                 }
    8654              :               break;
    8655              :             }
    8656            0 :           case LE_EXPR:
    8657            0 :             {
    8658            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8659            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8660            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8661              :                 {
    8662            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8663              :                     {
    8664            0 :                       {
    8665            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8666            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8667            0 :                         const enum tree_code cmp2 = GE_EXPR;
    8668            0 :                         const enum tree_code rcmp = NE_EXPR;
    8669            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8670            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8671            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8672            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8673              : )
    8674              :                           {
    8675            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1195;
    8676            0 :                             {
    8677            0 :                               tree res_op0;
    8678            0 :                               res_op0 = captures[0];
    8679            0 :                               tree res_op1;
    8680            0 :                               res_op1 = captures[1];
    8681            0 :                               tree _r;
    8682            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8683            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8684            0 :                               return _r;
    8685              :                             }
    8686            0 : next_after_fail1195:;
    8687              :                           }
    8688              :                       }
    8689              :                     }
    8690              :                 }
    8691              :               break;
    8692              :             }
    8693              :           default:;
    8694              :           }
    8695              :         break;
    8696              :       }
    8697          119 :     case EQ_EXPR:
    8698          119 :       {
    8699          119 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8700          119 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8701          119 :         switch (TREE_CODE (_p1))
    8702              :           {
    8703            0 :           case LT_EXPR:
    8704            0 :             {
    8705            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8706            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8707            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8708              :                 {
    8709            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8710              :                     {
    8711            0 :                       {
    8712            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8713            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8714            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    8715            0 :                         const enum tree_code rcmp = LE_EXPR;
    8716            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8717            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8718            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8719            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8720              : )
    8721              :                           {
    8722            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1196;
    8723            0 :                             {
    8724            0 :                               tree res_op0;
    8725            0 :                               res_op0 = captures[0];
    8726            0 :                               tree res_op1;
    8727            0 :                               res_op1 = captures[1];
    8728            0 :                               tree _r;
    8729            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8730            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8731            0 :                               return _r;
    8732              :                             }
    8733            0 : next_after_fail1196:;
    8734              :                           }
    8735              :                       }
    8736              :                     }
    8737              :                 }
    8738              :               break;
    8739              :             }
    8740            0 :           case LE_EXPR:
    8741            0 :             {
    8742            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8743            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8744            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8745              :                 {
    8746            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8747              :                     {
    8748            0 :                       {
    8749            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8750            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8751            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    8752            0 :                         const enum tree_code rcmp = LT_EXPR;
    8753            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8754            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8755            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8756            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8757              : )
    8758              :                           {
    8759            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1197;
    8760            0 :                             {
    8761            0 :                               tree res_op0;
    8762            0 :                               res_op0 = captures[0];
    8763            0 :                               tree res_op1;
    8764            0 :                               res_op1 = captures[1];
    8765            0 :                               tree _r;
    8766            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8767            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8768            0 :                               return _r;
    8769              :                             }
    8770            0 : next_after_fail1197:;
    8771              :                           }
    8772              :                       }
    8773              :                     }
    8774              :                 }
    8775              :               break;
    8776              :             }
    8777            0 :           case GT_EXPR:
    8778            0 :             {
    8779            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8780            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8781            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8782              :                 {
    8783            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8784              :                     {
    8785            0 :                       {
    8786            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8787            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8788            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    8789            0 :                         const enum tree_code rcmp = LE_EXPR;
    8790            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8791            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8792            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8793            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8794              : )
    8795              :                           {
    8796            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1198;
    8797            0 :                             {
    8798            0 :                               tree res_op0;
    8799            0 :                               res_op0 = captures[0];
    8800            0 :                               tree res_op1;
    8801            0 :                               res_op1 = captures[1];
    8802            0 :                               tree _r;
    8803            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8804            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8805            0 :                               return _r;
    8806              :                             }
    8807            0 : next_after_fail1198:;
    8808              :                           }
    8809              :                       }
    8810              :                     }
    8811              :                 }
    8812              :               break;
    8813              :             }
    8814            8 :           case GE_EXPR:
    8815            8 :             {
    8816            8 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8817            8 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8818            8 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8819              :                 {
    8820            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8821              :                     {
    8822            0 :                       {
    8823            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8824            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8825            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    8826            0 :                         const enum tree_code rcmp = LT_EXPR;
    8827            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8828            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8829            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8830            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8831              : )
    8832              :                           {
    8833            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1199;
    8834            0 :                             {
    8835            0 :                               tree res_op0;
    8836            0 :                               res_op0 = captures[0];
    8837            0 :                               tree res_op1;
    8838            0 :                               res_op1 = captures[1];
    8839            0 :                               tree _r;
    8840            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8841            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8842            0 :                               return _r;
    8843              :                             }
    8844            0 : next_after_fail1199:;
    8845              :                           }
    8846              :                       }
    8847              :                     }
    8848              :                 }
    8849              :               break;
    8850              :             }
    8851              :           default:;
    8852              :           }
    8853              :         break;
    8854              :       }
    8855          113 :     case NE_EXPR:
    8856          113 :       {
    8857          113 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8858          113 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8859          113 :         switch (TREE_CODE (_p1))
    8860              :           {
    8861            0 :           case LT_EXPR:
    8862            0 :             {
    8863            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8864            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8865            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8866              :                 {
    8867            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8868              :                     {
    8869            0 :                       {
    8870            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8871            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8872            0 :                         const enum tree_code cmp2 = NE_EXPR;
    8873            0 :                         const enum tree_code rcmp = GT_EXPR;
    8874            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8875            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8876            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8877            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8878              : )
    8879              :                           {
    8880            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1200;
    8881            0 :                             {
    8882            0 :                               tree res_op0;
    8883            0 :                               res_op0 = captures[0];
    8884            0 :                               tree res_op1;
    8885            0 :                               res_op1 = captures[1];
    8886            0 :                               tree _r;
    8887            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8888            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8889            0 :                               return _r;
    8890              :                             }
    8891            0 : next_after_fail1200:;
    8892              :                           }
    8893              :                       }
    8894              :                     }
    8895              :                 }
    8896              :               break;
    8897              :             }
    8898            0 :           case LE_EXPR:
    8899            0 :             {
    8900            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8901            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8902            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8903              :                 {
    8904            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8905              :                     {
    8906            0 :                       {
    8907            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8908            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8909            0 :                         const enum tree_code cmp2 = NE_EXPR;
    8910            0 :                         const enum tree_code rcmp = GE_EXPR;
    8911            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8912            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8913            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8914            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8915              : )
    8916              :                           {
    8917            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1201;
    8918            0 :                             {
    8919            0 :                               tree res_op0;
    8920            0 :                               res_op0 = captures[0];
    8921            0 :                               tree res_op1;
    8922            0 :                               res_op1 = captures[1];
    8923            0 :                               tree _r;
    8924            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8925            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8926            0 :                               return _r;
    8927              :                             }
    8928            0 : next_after_fail1201:;
    8929              :                           }
    8930              :                       }
    8931              :                     }
    8932              :                 }
    8933              :               break;
    8934              :             }
    8935            0 :           case GT_EXPR:
    8936            0 :             {
    8937            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8938            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8939            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8940              :                 {
    8941            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8942              :                     {
    8943            0 :                       {
    8944            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8945            0 :                         const enum tree_code cmp1 = LT_EXPR;
    8946            0 :                         const enum tree_code cmp2 = NE_EXPR;
    8947            0 :                         const enum tree_code rcmp = GT_EXPR;
    8948            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8949            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8950            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8951            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8952              : )
    8953              :                           {
    8954            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1202;
    8955            0 :                             {
    8956            0 :                               tree res_op0;
    8957            0 :                               res_op0 = captures[0];
    8958            0 :                               tree res_op1;
    8959            0 :                               res_op1 = captures[1];
    8960            0 :                               tree _r;
    8961            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8962            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8963            0 :                               return _r;
    8964              :                             }
    8965            0 : next_after_fail1202:;
    8966              :                           }
    8967              :                       }
    8968              :                     }
    8969              :                 }
    8970              :               break;
    8971              :             }
    8972            6 :           case GE_EXPR:
    8973            6 :             {
    8974            6 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8975            6 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8976            6 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8977              :                 {
    8978            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8979              :                     {
    8980            0 :                       {
    8981            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8982            0 :                         const enum tree_code cmp1 = LE_EXPR;
    8983            0 :                         const enum tree_code cmp2 = NE_EXPR;
    8984            0 :                         const enum tree_code rcmp = GE_EXPR;
    8985            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8986            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    8987            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[1]))
    8988            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    8989              : )
    8990              :                           {
    8991            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1203;
    8992            0 :                             {
    8993            0 :                               tree res_op0;
    8994            0 :                               res_op0 = captures[0];
    8995            0 :                               tree res_op1;
    8996            0 :                               res_op1 = captures[1];
    8997            0 :                               tree _r;
    8998            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    8999            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    9000            0 :                               return _r;
    9001              :                             }
    9002            0 : next_after_fail1203:;
    9003              :                           }
    9004              :                       }
    9005              :                     }
    9006              :                 }
    9007              :               break;
    9008              :             }
    9009              :           default:;
    9010              :           }
    9011              :         break;
    9012              :       }
    9013          524 :     case MULT_EXPR:
    9014          524 :       {
    9015          524 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9016          524 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9017          524 :         switch (TREE_CODE (_q21))
    9018              :           {
    9019          498 :           case INTEGER_CST:
    9020          498 :             {
    9021          498 :               switch (TREE_CODE (_p1))
    9022              :                 {
    9023           12 :                 case MULT_EXPR:
    9024           12 :                   {
    9025           12 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    9026           12 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    9027           12 :                     switch (TREE_CODE (_q51))
    9028              :                       {
    9029           12 :                       case INTEGER_CST:
    9030           12 :                         {
    9031           12 :                           {
    9032           12 :                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _p1, _q50, _q51 };
    9033           12 :                             tree res = generic_simplify_44 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    9034           12 :                             if (res) return res;
    9035              :                           }
    9036           12 :                           break;
    9037              :                         }
    9038              :                       default:;
    9039              :                       }
    9040              :                     break;
    9041              :                   }
    9042            0 :                 case LSHIFT_EXPR:
    9043            0 :                   {
    9044            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    9045            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    9046            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9047              :                       {
    9048            0 :                         switch (TREE_CODE (_q51))
    9049              :                           {
    9050            0 :                           case INTEGER_CST:
    9051            0 :                             {
    9052            0 :                               {
    9053            0 :                                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1, _q51 };
    9054            0 :                                 tree res = generic_simplify_45 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    9055            0 :                                 if (res) return res;
    9056              :                               }
    9057            0 :                               break;
    9058              :                             }
    9059              :                           default:;
    9060              :                           }
    9061              :                       }
    9062              :                     break;
    9063              :                   }
    9064          498 :                 default:;
    9065              :                 }
    9066          498 :               if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9067              :                 {
    9068           18 :                   {
    9069           18 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    9070           18 :                     tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    9071           18 :                     if (res) return res;
    9072              :                   }
    9073              :                 }
    9074              :               break;
    9075              :             }
    9076          524 :           default:;
    9077              :           }
    9078          524 :         switch (TREE_CODE (_q20))
    9079              :           {
    9080            0 :           case BIT_XOR_EXPR:
    9081            0 :             {
    9082            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9083            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9084            0 :               if (tree_zero_one_valued_p (_q21))
    9085              :                 {
    9086            0 :                   if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    9087              :                     {
    9088            0 :                       {
    9089            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
    9090            0 :                         tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    9091            0 :                         if (res) return res;
    9092              :                       }
    9093              :                     }
    9094            0 :                   if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    9095              :                     {
    9096            0 :                       {
    9097            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q21 };
    9098            0 :                         tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    9099            0 :                         if (res) return res;
    9100              :                       }
    9101              :                     }
    9102              :                 }
    9103              :               break;
    9104              :             }
    9105          524 :           default:;
    9106              :           }
    9107          524 :       if (tree_zero_one_valued_p (_q20))
    9108              :         {
    9109            8 :           switch (TREE_CODE (_q21))
    9110              :             {
    9111            2 :             case BIT_XOR_EXPR:
    9112            2 :               {
    9113            2 :                 tree _q40 = TREE_OPERAND (_q21, 0);
    9114            2 :                 tree _q41 = TREE_OPERAND (_q21, 1);
    9115            2 :                 if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    9116              :                   {
    9117            2 :                     {
    9118            2 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _q20 };
    9119            2 :                       tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    9120            2 :                       if (res) return res;
    9121              :                     }
    9122              :                   }
    9123            0 :                 if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
    9124              :                   {
    9125            0 :                     {
    9126            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _q20 };
    9127            0 :                       tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    9128            0 :                       if (res) return res;
    9129              :                     }
    9130              :                   }
    9131              :                 break;
    9132              :               }
    9133              :             default:;
    9134              :             }
    9135              :         }
    9136              :         break;
    9137              :       }
    9138         2503 :     case LSHIFT_EXPR:
    9139         2503 :       {
    9140         2503 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9141         2503 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9142         2503 :         switch (TREE_CODE (_q21))
    9143              :           {
    9144         1122 :           case INTEGER_CST:
    9145         1122 :             {
    9146         1122 :               switch (TREE_CODE (_p1))
    9147              :                 {
    9148            0 :                 case MULT_EXPR:
    9149            0 :                   {
    9150            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    9151            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    9152            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9153              :                       {
    9154            0 :                         switch (TREE_CODE (_q51))
    9155              :                           {
    9156            0 :                           case INTEGER_CST:
    9157            0 :                             {
    9158            0 :                               {
    9159            0 :                                 tree captures[6] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q51, _p0, _q21 };
    9160            0 :                                 tree res = generic_simplify_45 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    9161            0 :                                 if (res) return res;
    9162              :                               }
    9163            0 :                               break;
    9164              :                             }
    9165              :                           default:;
    9166              :                           }
    9167              :                       }
    9168              :                     break;
    9169              :                   }
    9170         1122 :                 default:;
    9171              :                 }
    9172         1122 :             {
    9173         1122 :               tree _p1_pops[1];
    9174         1122 :               if (tree_nop_convert (_p1, _p1_pops))
    9175              :                 {
    9176           23 :                   tree _q50 = _p1_pops[0];
    9177           23 :                   switch (TREE_CODE (_q50))
    9178              :                     {
    9179            0 :                     case MULT_EXPR:
    9180            0 :                       {
    9181            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    9182            0 :                         tree _q61 = TREE_OPERAND (_q50, 1);
    9183            0 :                         {
    9184            0 :                           tree _q60_pops[1];
    9185            0 :                           if (tree_nop_convert (_q60, _q60_pops))
    9186              :                             {
    9187            0 :                               tree _q70 = _q60_pops[0];
    9188            0 :                               if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    9189              :                                 {
    9190            0 :                                   switch (TREE_CODE (_q61))
    9191              :                                     {
    9192            0 :                                     case INTEGER_CST:
    9193            0 :                                       {
    9194            0 :                                         {
    9195            0 :                                           tree captures[6] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q61, _p0, _q21 };
    9196            0 :                                           tree res = generic_simplify_41 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    9197            0 :                                           if (res) return res;
    9198              :                                         }
    9199            0 :                                         break;
    9200              :                                       }
    9201              :                                     default:;
    9202              :                                     }
    9203              :                                 }
    9204              :                             }
    9205              :                         }
    9206            0 :                         break;
    9207              :                       }
    9208              :                     default:;
    9209              :                     }
    9210              :                 }
    9211              :             }
    9212         1122 :               break;
    9213              :             }
    9214              :           default:;
    9215              :           }
    9216              :         break;
    9217              :       }
    9218       948788 :     default:;
    9219              :     }
    9220       948788 :   switch (TREE_CODE (_p1))
    9221              :     {
    9222          244 :     case MULT_EXPR:
    9223          244 :       {
    9224          244 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9225          244 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9226          244 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9227              :           {
    9228            0 :             switch (TREE_CODE (_q31))
    9229              :               {
    9230            0 :               case INTEGER_CST:
    9231            0 :                 {
    9232            0 :                   {
    9233            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
    9234            0 :                     tree res = generic_simplify_46 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    9235            0 :                     if (res) return res;
    9236              :                   }
    9237            0 :                   break;
    9238              :                 }
    9239              :               default:;
    9240              :               }
    9241              :           }
    9242              :         break;
    9243              :       }
    9244       948788 :     default:;
    9245              :     }
    9246       948788 : {
    9247       948788 :   tree _p1_pops[1];
    9248       948788 :   if (tree_nop_convert (_p1, _p1_pops))
    9249              :     {
    9250       664955 :       tree _q30 = _p1_pops[0];
    9251       664955 :       switch (TREE_CODE (_q30))
    9252              :         {
    9253           17 :         case MULT_EXPR:
    9254           17 :           {
    9255           17 :             tree _q40 = TREE_OPERAND (_q30, 0);
    9256           17 :             tree _q41 = TREE_OPERAND (_q30, 1);
    9257           17 :             {
    9258           17 :               tree _q40_pops[1];
    9259           17 :               if (tree_nop_convert (_q40, _q40_pops))
    9260              :                 {
    9261            0 :                   tree _q50 = _q40_pops[0];
    9262            0 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    9263              :                     {
    9264            0 :                       switch (TREE_CODE (_q41))
    9265              :                         {
    9266            0 :                         case INTEGER_CST:
    9267            0 :                           {
    9268            0 :                             {
    9269            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
    9270            0 :                               tree res = generic_simplify_42 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    9271            0 :                               if (res) return res;
    9272              :                             }
    9273            0 :                             break;
    9274              :                           }
    9275              :                         default:;
    9276              :                         }
    9277              :                     }
    9278              :                 }
    9279              :             }
    9280           17 :             break;
    9281              :           }
    9282              :         default:;
    9283              :         }
    9284              :     }
    9285              : }
    9286       948788 :   switch (TREE_CODE (_p0))
    9287              :     {
    9288         2503 :     case LSHIFT_EXPR:
    9289         2503 :       {
    9290         2503 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9291         2503 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9292         2503 :         switch (TREE_CODE (_q21))
    9293              :           {
    9294         1122 :           case INTEGER_CST:
    9295         1122 :             {
    9296         1122 :               switch (TREE_CODE (_p1))
    9297              :                 {
    9298            9 :                 case LSHIFT_EXPR:
    9299            9 :                   {
    9300            9 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    9301            9 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    9302            9 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9303              :                       {
    9304            3 :                         switch (TREE_CODE (_q51))
    9305              :                           {
    9306            3 :                           case INTEGER_CST:
    9307            3 :                             {
    9308            3 :                               {
    9309            3 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    9310            3 :                                 tree res = generic_simplify_48 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    9311            3 :                                 if (res) return res;
    9312              :                               }
    9313            1 :                               break;
    9314              :                             }
    9315              :                           default:;
    9316              :                           }
    9317              :                       }
    9318              :                     break;
    9319              :                   }
    9320         1120 :                 default:;
    9321              :                 }
    9322         1120 :               if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9323              :                 {
    9324           57 :                   {
    9325           57 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9326           57 :                     tree res = generic_simplify_49 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    9327           57 :                     if (res) return res;
    9328              :                   }
    9329              :                 }
    9330              :               break;
    9331              :             }
    9332              :           default:;
    9333              :           }
    9334              :         break;
    9335              :       }
    9336       948786 :     default:;
    9337              :     }
    9338       948786 :   switch (TREE_CODE (_p1))
    9339              :     {
    9340         2000 :     case LSHIFT_EXPR:
    9341         2000 :       {
    9342         2000 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9343         2000 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9344         2000 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9345              :           {
    9346            3 :             switch (TREE_CODE (_q31))
    9347              :               {
    9348            3 :               case INTEGER_CST:
    9349            3 :                 {
    9350            3 :                   {
    9351            3 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
    9352            3 :                     tree res = generic_simplify_49 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR);
    9353            3 :                     if (res) return res;
    9354              :                   }
    9355            0 :                   break;
    9356              :                 }
    9357              :               default:;
    9358              :               }
    9359              :           }
    9360              :         break;
    9361              :       }
    9362       948783 :     default:;
    9363              :     }
    9364       948783 :   switch (TREE_CODE (_p0))
    9365              :     {
    9366            0 :     case MIN_EXPR:
    9367            0 :       {
    9368            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9369            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9370            0 :         switch (TREE_CODE (_p1))
    9371              :           {
    9372            0 :           case MAX_EXPR:
    9373            0 :             {
    9374            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9375            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9376            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9377              :                 {
    9378            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9379              :                     {
    9380            0 :                       {
    9381            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9382            0 :                         if (!HONOR_NANS (captures[0])
    9383              : )
    9384              :                           {
    9385            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1204;
    9386            0 :                             {
    9387            0 :                               tree res_op0;
    9388            0 :                               res_op0 = captures[0];
    9389            0 :                               tree res_op1;
    9390            0 :                               res_op1 = captures[1];
    9391            0 :                               tree _r;
    9392            0 :                               _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    9393            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    9394            0 :                               return _r;
    9395              :                             }
    9396            0 : next_after_fail1204:;
    9397              :                           }
    9398              :                       }
    9399              :                     }
    9400              :                 }
    9401            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    9402              :                 {
    9403            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    9404              :                     {
    9405            0 :                       {
    9406            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9407            0 :                         if (!HONOR_NANS (captures[0])
    9408              : )
    9409              :                           {
    9410            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1205;
    9411            0 :                             {
    9412            0 :                               tree res_op0;
    9413            0 :                               res_op0 = captures[0];
    9414            0 :                               tree res_op1;
    9415            0 :                               res_op1 = captures[1];
    9416            0 :                               tree _r;
    9417            0 :                               _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    9418            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    9419            0 :                               return _r;
    9420              :                             }
    9421            0 : next_after_fail1205:;
    9422              :                           }
    9423              :                       }
    9424              :                     }
    9425              :                 }
    9426              :               break;
    9427              :             }
    9428              :           default:;
    9429              :           }
    9430              :         break;
    9431              :       }
    9432          144 :     case MAX_EXPR:
    9433          144 :       {
    9434          144 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9435          144 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9436          144 :         switch (TREE_CODE (_p1))
    9437              :           {
    9438            0 :           case MIN_EXPR:
    9439            0 :             {
    9440            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9441            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9442            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9443              :                 {
    9444            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9445              :                     {
    9446            0 :                       {
    9447            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9448            0 :                         if (!HONOR_NANS (captures[0])
    9449              : )
    9450              :                           {
    9451            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1206;
    9452            0 :                             {
    9453            0 :                               tree res_op0;
    9454            0 :                               res_op0 = captures[0];
    9455            0 :                               tree res_op1;
    9456            0 :                               res_op1 = captures[1];
    9457            0 :                               tree _r;
    9458            0 :                               _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    9459            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    9460            0 :                               return _r;
    9461              :                             }
    9462            0 : next_after_fail1206:;
    9463              :                           }
    9464              :                       }
    9465              :                     }
    9466              :                 }
    9467            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    9468              :                 {
    9469            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    9470              :                     {
    9471            0 :                       {
    9472            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9473            0 :                         if (!HONOR_NANS (captures[0])
    9474              : )
    9475              :                           {
    9476            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1207;
    9477            0 :                             {
    9478            0 :                               tree res_op0;
    9479            0 :                               res_op0 = captures[0];
    9480            0 :                               tree res_op1;
    9481            0 :                               res_op1 = captures[1];
    9482            0 :                               tree _r;
    9483            0 :                               _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    9484            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    9485            0 :                               return _r;
    9486              :                             }
    9487            0 : next_after_fail1207:;
    9488              :                           }
    9489              :                       }
    9490              :                     }
    9491              :                 }
    9492              :               break;
    9493              :             }
    9494              :           default:;
    9495              :           }
    9496              :         break;
    9497              :       }
    9498       948783 :     default:;
    9499              :     }
    9500       948783 :   switch (TREE_CODE (_p1))
    9501              :     {
    9502          244 :     case MULT_EXPR:
    9503          244 :       {
    9504          244 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9505          244 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9506          244 :         switch (TREE_CODE (_q30))
    9507              :           {
    9508            0 :           case BIT_XOR_EXPR:
    9509            0 :             {
    9510            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    9511            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    9512            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    9513              :                 {
    9514            0 :                   if (tree_zero_one_valued_p (_q31))
    9515              :                     {
    9516            0 :                       {
    9517            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q31 };
    9518            0 :                         tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    9519            0 :                         if (res) return res;
    9520              :                       }
    9521              :                     }
    9522              :                 }
    9523            0 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    9524              :                 {
    9525            0 :                   if (tree_zero_one_valued_p (_q31))
    9526              :                     {
    9527            0 :                       {
    9528            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q31 };
    9529            0 :                         tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    9530            0 :                         if (res) return res;
    9531              :                       }
    9532              :                     }
    9533              :                 }
    9534              :               break;
    9535              :             }
    9536          244 :           default:;
    9537              :           }
    9538          244 :       if (tree_zero_one_valued_p (_q30))
    9539              :         {
    9540           17 :           switch (TREE_CODE (_q31))
    9541              :             {
    9542            0 :             case BIT_XOR_EXPR:
    9543            0 :               {
    9544            0 :                 tree _q50 = TREE_OPERAND (_q31, 0);
    9545            0 :                 tree _q51 = TREE_OPERAND (_q31, 1);
    9546            0 :                 if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    9547              :                   {
    9548            0 :                     {
    9549            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q51, _q30 };
    9550            0 :                       tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    9551            0 :                       if (res) return res;
    9552              :                     }
    9553              :                   }
    9554            0 :                 if ((_q51 == _p0 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _p0, 0) && types_match (_q51, _p0)))
    9555              :                   {
    9556            0 :                     {
    9557            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q50, _q30 };
    9558            0 :                       tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    9559            0 :                       if (res) return res;
    9560              :                     }
    9561              :                   }
    9562              :                 break;
    9563              :               }
    9564              :             default:;
    9565              :             }
    9566              :         }
    9567              :         break;
    9568              :       }
    9569       948783 :     default:;
    9570              :     }
    9571       948783 :   switch (TREE_CODE (_p0))
    9572              :     {
    9573            1 :     case VEC_COND_EXPR:
    9574            1 :       {
    9575            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9576            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9577            1 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9578            1 :         switch (TREE_CODE (_p1))
    9579              :           {
    9580            0 :           case VEC_COND_EXPR:
    9581            0 :             {
    9582            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    9583            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    9584            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    9585            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9586              :                 {
    9587            0 :                   {
    9588            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    9589            0 :                     if (VECTOR_TYPE_P (type)
    9590            0 :  && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
    9591              :  || types_match (type, TREE_TYPE (captures[2]))
    9592              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9593              :  || (optimize_vectors_before_lowering_p ()
    9594              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9595              : )
    9596              :                       {
    9597            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1208;
    9598            0 :                         {
    9599            0 :                           tree res_op0;
    9600            0 :                           res_op0 = captures[1];
    9601            0 :                           tree res_op1;
    9602            0 :                           {
    9603            0 :                             tree _o1[2], _r1;
    9604            0 :                             _o1[0] = captures[2];
    9605            0 :                             _o1[1] = captures[5];
    9606            0 :                             _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
    9607            0 :                             if (EXPR_P (_r1))
    9608            0 :                               goto next_after_fail1208;
    9609            0 :                             res_op1 = _r1;
    9610              :                           }
    9611            0 :                           tree res_op2;
    9612            0 :                           {
    9613            0 :                             tree _o1[2], _r1;
    9614            0 :                             _o1[0] = captures[3];
    9615            0 :                             _o1[1] = captures[6];
    9616            0 :                             _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
    9617            0 :                             if (EXPR_P (_r1))
    9618            0 :                               goto next_after_fail1208;
    9619            0 :                             res_op2 = _r1;
    9620              :                           }
    9621            0 :                           tree _r;
    9622            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9623            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    9624            0 :                           return _r;
    9625              :                         }
    9626            0 : next_after_fail1208:;
    9627              :                       }
    9628              :                   }
    9629              :                 }
    9630              :               break;
    9631              :             }
    9632            1 :           default:;
    9633              :           }
    9634            1 :         if (integer_minus_onep (_q21))
    9635              :           {
    9636            1 :             if (integer_zerop (_q22))
    9637              :               {
    9638            1 :                 switch (TREE_CODE (_p1))
    9639              :                   {
    9640            0 :                   case VEC_COND_EXPR:
    9641            0 :                     {
    9642            0 :                       tree _q60 = TREE_OPERAND (_p1, 0);
    9643            0 :                       tree _q61 = TREE_OPERAND (_p1, 1);
    9644            0 :                       tree _q62 = TREE_OPERAND (_p1, 2);
    9645            0 :                       if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    9646              :                         {
    9647            0 :                           if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    9648              :                             {
    9649            0 :                               {
    9650            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9651            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9652            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9653              : )
    9654              :                                   {
    9655            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1209;
    9656            0 :                                     {
    9657            0 :                                       tree res_op0;
    9658            0 :                                       {
    9659            0 :                                         tree _o1[2], _r1;
    9660            0 :                                         _o1[0] = captures[0];
    9661            0 :                                         _o1[1] = captures[3];
    9662            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9663            0 :                                         res_op0 = _r1;
    9664              :                                       }
    9665            0 :                                       tree res_op1;
    9666            0 :                                       res_op1 = captures[1];
    9667            0 :                                       tree res_op2;
    9668            0 :                                       res_op2 = captures[2];
    9669            0 :                                       tree _r;
    9670            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9671            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9672            0 :                                       return _r;
    9673              :                                     }
    9674            0 : next_after_fail1209:;
    9675              :                                   }
    9676              :                               }
    9677            0 :                               {
    9678            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9679            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9680            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9681              : )
    9682              :                                   {
    9683            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1210;
    9684            0 :                                     {
    9685            0 :                                       tree res_op0;
    9686            0 :                                       {
    9687            0 :                                         tree _o1[2], _r1;
    9688            0 :                                         _o1[0] = captures[0];
    9689            0 :                                         _o1[1] = captures[3];
    9690            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9691            0 :                                         res_op0 = _r1;
    9692              :                                       }
    9693            0 :                                       tree res_op1;
    9694            0 :                                       res_op1 = captures[1];
    9695            0 :                                       tree res_op2;
    9696            0 :                                       res_op2 = captures[2];
    9697            0 :                                       tree _r;
    9698            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9699            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9700            0 :                                       return _r;
    9701              :                                     }
    9702            0 : next_after_fail1210:;
    9703              :                                   }
    9704              :                               }
    9705            0 :                               {
    9706            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9707            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9708            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9709              : )
    9710              :                                   {
    9711            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1211;
    9712            0 :                                     {
    9713            0 :                                       tree res_op0;
    9714            0 :                                       {
    9715            0 :                                         tree _o1[2], _r1;
    9716            0 :                                         _o1[0] = captures[0];
    9717            0 :                                         _o1[1] = captures[3];
    9718            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9719            0 :                                         res_op0 = _r1;
    9720              :                                       }
    9721            0 :                                       tree res_op1;
    9722            0 :                                       res_op1 = captures[1];
    9723            0 :                                       tree res_op2;
    9724            0 :                                       res_op2 = captures[2];
    9725            0 :                                       tree _r;
    9726            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9727            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9728            0 :                                       return _r;
    9729              :                                     }
    9730            0 : next_after_fail1211:;
    9731              :                                   }
    9732              :                               }
    9733            0 :                               {
    9734            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9735            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9736            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9737              : )
    9738              :                                   {
    9739            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1212;
    9740            0 :                                     {
    9741            0 :                                       tree res_op0;
    9742            0 :                                       {
    9743            0 :                                         tree _o1[2], _r1;
    9744            0 :                                         _o1[0] = captures[0];
    9745            0 :                                         _o1[1] = captures[3];
    9746            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9747            0 :                                         res_op0 = _r1;
    9748              :                                       }
    9749            0 :                                       tree res_op1;
    9750            0 :                                       res_op1 = captures[1];
    9751            0 :                                       tree res_op2;
    9752            0 :                                       res_op2 = captures[2];
    9753            0 :                                       tree _r;
    9754            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9755            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9756            0 :                                       return _r;
    9757              :                                     }
    9758            0 : next_after_fail1212:;
    9759              :                                   }
    9760              :                               }
    9761            0 :                               {
    9762            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9763            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9764            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9765              : )
    9766              :                                   {
    9767            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1213;
    9768            0 :                                     {
    9769            0 :                                       tree res_op0;
    9770            0 :                                       {
    9771            0 :                                         tree _o1[2], _r1;
    9772            0 :                                         _o1[0] = captures[0];
    9773            0 :                                         _o1[1] = captures[3];
    9774            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9775            0 :                                         res_op0 = _r1;
    9776              :                                       }
    9777            0 :                                       tree res_op1;
    9778            0 :                                       res_op1 = captures[1];
    9779            0 :                                       tree res_op2;
    9780            0 :                                       res_op2 = captures[2];
    9781            0 :                                       tree _r;
    9782            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9783            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9784            0 :                                       return _r;
    9785              :                                     }
    9786            0 : next_after_fail1213:;
    9787              :                                   }
    9788              :                               }
    9789            0 :                               {
    9790            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9791            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9792            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9793              : )
    9794              :                                   {
    9795            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1214;
    9796            0 :                                     {
    9797            0 :                                       tree res_op0;
    9798            0 :                                       {
    9799            0 :                                         tree _o1[2], _r1;
    9800            0 :                                         _o1[0] = captures[0];
    9801            0 :                                         _o1[1] = captures[3];
    9802            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9803            0 :                                         res_op0 = _r1;
    9804              :                                       }
    9805            0 :                                       tree res_op1;
    9806            0 :                                       res_op1 = captures[1];
    9807            0 :                                       tree res_op2;
    9808            0 :                                       res_op2 = captures[2];
    9809            0 :                                       tree _r;
    9810            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9811            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9812            0 :                                       return _r;
    9813              :                                     }
    9814            0 : next_after_fail1214:;
    9815              :                                   }
    9816              :                               }
    9817            0 :                               {
    9818            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9819            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9820            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9821              : )
    9822              :                                   {
    9823            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1215;
    9824            0 :                                     {
    9825            0 :                                       tree res_op0;
    9826            0 :                                       {
    9827            0 :                                         tree _o1[2], _r1;
    9828            0 :                                         _o1[0] = captures[0];
    9829            0 :                                         _o1[1] = captures[3];
    9830            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9831            0 :                                         res_op0 = _r1;
    9832              :                                       }
    9833            0 :                                       tree res_op1;
    9834            0 :                                       res_op1 = captures[1];
    9835            0 :                                       tree res_op2;
    9836            0 :                                       res_op2 = captures[2];
    9837            0 :                                       tree _r;
    9838            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9839            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9840            0 :                                       return _r;
    9841              :                                     }
    9842            0 : next_after_fail1215:;
    9843              :                                   }
    9844              :                               }
    9845            0 :                               {
    9846            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9847            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9848            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9849              : )
    9850              :                                   {
    9851            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1216;
    9852            0 :                                     {
    9853            0 :                                       tree res_op0;
    9854            0 :                                       {
    9855            0 :                                         tree _o1[2], _r1;
    9856            0 :                                         _o1[0] = captures[0];
    9857            0 :                                         _o1[1] = captures[3];
    9858            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9859            0 :                                         res_op0 = _r1;
    9860              :                                       }
    9861            0 :                                       tree res_op1;
    9862            0 :                                       res_op1 = captures[1];
    9863            0 :                                       tree res_op2;
    9864            0 :                                       res_op2 = captures[2];
    9865            0 :                                       tree _r;
    9866            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9867            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9868            0 :                                       return _r;
    9869              :                                     }
    9870            0 : next_after_fail1216:;
    9871              :                                   }
    9872              :                               }
    9873            0 :                               {
    9874            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9875            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9876            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9877              : )
    9878              :                                   {
    9879            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1217;
    9880            0 :                                     {
    9881            0 :                                       tree res_op0;
    9882            0 :                                       {
    9883            0 :                                         tree _o1[2], _r1;
    9884            0 :                                         _o1[0] = captures[0];
    9885            0 :                                         _o1[1] = captures[3];
    9886            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9887            0 :                                         res_op0 = _r1;
    9888              :                                       }
    9889            0 :                                       tree res_op1;
    9890            0 :                                       res_op1 = captures[1];
    9891            0 :                                       tree res_op2;
    9892            0 :                                       res_op2 = captures[2];
    9893            0 :                                       tree _r;
    9894            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9895            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9896            0 :                                       return _r;
    9897              :                                     }
    9898            0 : next_after_fail1217:;
    9899              :                                   }
    9900              :                               }
    9901            0 :                               {
    9902            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9903            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9904            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9905              : )
    9906              :                                   {
    9907            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1218;
    9908            0 :                                     {
    9909            0 :                                       tree res_op0;
    9910            0 :                                       {
    9911            0 :                                         tree _o1[2], _r1;
    9912            0 :                                         _o1[0] = captures[0];
    9913            0 :                                         _o1[1] = captures[3];
    9914            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9915            0 :                                         res_op0 = _r1;
    9916              :                                       }
    9917            0 :                                       tree res_op1;
    9918            0 :                                       res_op1 = captures[1];
    9919            0 :                                       tree res_op2;
    9920            0 :                                       res_op2 = captures[2];
    9921            0 :                                       tree _r;
    9922            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9923            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9924            0 :                                       return _r;
    9925              :                                     }
    9926            0 : next_after_fail1218:;
    9927              :                                   }
    9928              :                               }
    9929            0 :                               {
    9930            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9931            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9932            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9933              : )
    9934              :                                   {
    9935            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1219;
    9936            0 :                                     {
    9937            0 :                                       tree res_op0;
    9938            0 :                                       {
    9939            0 :                                         tree _o1[2], _r1;
    9940            0 :                                         _o1[0] = captures[0];
    9941            0 :                                         _o1[1] = captures[3];
    9942            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9943            0 :                                         res_op0 = _r1;
    9944              :                                       }
    9945            0 :                                       tree res_op1;
    9946            0 :                                       res_op1 = captures[1];
    9947            0 :                                       tree res_op2;
    9948            0 :                                       res_op2 = captures[2];
    9949            0 :                                       tree _r;
    9950            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9951            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9952            0 :                                       return _r;
    9953              :                                     }
    9954            0 : next_after_fail1219:;
    9955              :                                   }
    9956              :                               }
    9957            0 :                               {
    9958            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9959            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9960            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9961              : )
    9962              :                                   {
    9963            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1220;
    9964            0 :                                     {
    9965            0 :                                       tree res_op0;
    9966            0 :                                       {
    9967            0 :                                         tree _o1[2], _r1;
    9968            0 :                                         _o1[0] = captures[0];
    9969            0 :                                         _o1[1] = captures[3];
    9970            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9971            0 :                                         res_op0 = _r1;
    9972              :                                       }
    9973            0 :                                       tree res_op1;
    9974            0 :                                       res_op1 = captures[1];
    9975            0 :                                       tree res_op2;
    9976            0 :                                       res_op2 = captures[2];
    9977            0 :                                       tree _r;
    9978            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9979            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    9980            0 :                                       return _r;
    9981              :                                     }
    9982            0 : next_after_fail1220:;
    9983              :                                   }
    9984              :                               }
    9985            0 :                               {
    9986            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9987            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
    9988            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
    9989              : )
    9990              :                                   {
    9991            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1221;
    9992            0 :                                     {
    9993            0 :                                       tree res_op0;
    9994            0 :                                       {
    9995            0 :                                         tree _o1[2], _r1;
    9996            0 :                                         _o1[0] = captures[0];
    9997            0 :                                         _o1[1] = captures[3];
    9998            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9999            0 :                                         res_op0 = _r1;
   10000              :                                       }
   10001            0 :                                       tree res_op1;
   10002            0 :                                       res_op1 = captures[1];
   10003            0 :                                       tree res_op2;
   10004            0 :                                       res_op2 = captures[2];
   10005            0 :                                       tree _r;
   10006            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10007            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10008            0 :                                       return _r;
   10009              :                                     }
   10010            0 : next_after_fail1221:;
   10011              :                                   }
   10012              :                               }
   10013            0 :                               {
   10014            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10015            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10016            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10017              : )
   10018              :                                   {
   10019            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1222;
   10020            0 :                                     {
   10021            0 :                                       tree res_op0;
   10022            0 :                                       {
   10023            0 :                                         tree _o1[2], _r1;
   10024            0 :                                         _o1[0] = captures[0];
   10025            0 :                                         _o1[1] = captures[3];
   10026            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10027            0 :                                         res_op0 = _r1;
   10028              :                                       }
   10029            0 :                                       tree res_op1;
   10030            0 :                                       res_op1 = captures[1];
   10031            0 :                                       tree res_op2;
   10032            0 :                                       res_op2 = captures[2];
   10033            0 :                                       tree _r;
   10034            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10035            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10036            0 :                                       return _r;
   10037              :                                     }
   10038            0 : next_after_fail1222:;
   10039              :                                   }
   10040              :                               }
   10041            0 :                               {
   10042            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10043            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10044            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10045              : )
   10046              :                                   {
   10047            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1223;
   10048            0 :                                     {
   10049            0 :                                       tree res_op0;
   10050            0 :                                       {
   10051            0 :                                         tree _o1[2], _r1;
   10052            0 :                                         _o1[0] = captures[0];
   10053            0 :                                         _o1[1] = captures[3];
   10054            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10055            0 :                                         res_op0 = _r1;
   10056              :                                       }
   10057            0 :                                       tree res_op1;
   10058            0 :                                       res_op1 = captures[1];
   10059            0 :                                       tree res_op2;
   10060            0 :                                       res_op2 = captures[2];
   10061            0 :                                       tree _r;
   10062            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10063            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10064            0 :                                       return _r;
   10065              :                                     }
   10066            0 : next_after_fail1223:;
   10067              :                                   }
   10068              :                               }
   10069            0 :                               {
   10070            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10071            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10072            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10073              : )
   10074              :                                   {
   10075            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1224;
   10076            0 :                                     {
   10077            0 :                                       tree res_op0;
   10078            0 :                                       {
   10079            0 :                                         tree _o1[2], _r1;
   10080            0 :                                         _o1[0] = captures[0];
   10081            0 :                                         _o1[1] = captures[3];
   10082            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10083            0 :                                         res_op0 = _r1;
   10084              :                                       }
   10085            0 :                                       tree res_op1;
   10086            0 :                                       res_op1 = captures[1];
   10087            0 :                                       tree res_op2;
   10088            0 :                                       res_op2 = captures[2];
   10089            0 :                                       tree _r;
   10090            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10091            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10092            0 :                                       return _r;
   10093              :                                     }
   10094            0 : next_after_fail1224:;
   10095              :                                   }
   10096              :                               }
   10097            0 :                               {
   10098            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10099            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10100            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10101              : )
   10102              :                                   {
   10103            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1225;
   10104            0 :                                     {
   10105            0 :                                       tree res_op0;
   10106            0 :                                       {
   10107            0 :                                         tree _o1[2], _r1;
   10108            0 :                                         _o1[0] = captures[0];
   10109            0 :                                         _o1[1] = captures[3];
   10110            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10111            0 :                                         res_op0 = _r1;
   10112              :                                       }
   10113            0 :                                       tree res_op1;
   10114            0 :                                       res_op1 = captures[1];
   10115            0 :                                       tree res_op2;
   10116            0 :                                       res_op2 = captures[2];
   10117            0 :                                       tree _r;
   10118            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10119            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10120            0 :                                       return _r;
   10121              :                                     }
   10122            0 : next_after_fail1225:;
   10123              :                                   }
   10124              :                               }
   10125            0 :                               {
   10126            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10127            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10128            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10129              : )
   10130              :                                   {
   10131            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1226;
   10132            0 :                                     {
   10133            0 :                                       tree res_op0;
   10134            0 :                                       {
   10135            0 :                                         tree _o1[2], _r1;
   10136            0 :                                         _o1[0] = captures[0];
   10137            0 :                                         _o1[1] = captures[3];
   10138            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10139            0 :                                         res_op0 = _r1;
   10140              :                                       }
   10141            0 :                                       tree res_op1;
   10142            0 :                                       res_op1 = captures[1];
   10143            0 :                                       tree res_op2;
   10144            0 :                                       res_op2 = captures[2];
   10145            0 :                                       tree _r;
   10146            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10147            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10148            0 :                                       return _r;
   10149              :                                     }
   10150            0 : next_after_fail1226:;
   10151              :                                   }
   10152              :                               }
   10153            0 :                               {
   10154            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10155            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10156            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10157              : )
   10158              :                                   {
   10159            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1227;
   10160            0 :                                     {
   10161            0 :                                       tree res_op0;
   10162            0 :                                       {
   10163            0 :                                         tree _o1[2], _r1;
   10164            0 :                                         _o1[0] = captures[0];
   10165            0 :                                         _o1[1] = captures[3];
   10166            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10167            0 :                                         res_op0 = _r1;
   10168              :                                       }
   10169            0 :                                       tree res_op1;
   10170            0 :                                       res_op1 = captures[1];
   10171            0 :                                       tree res_op2;
   10172            0 :                                       res_op2 = captures[2];
   10173            0 :                                       tree _r;
   10174            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10175            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10176            0 :                                       return _r;
   10177              :                                     }
   10178            0 : next_after_fail1227:;
   10179              :                                   }
   10180              :                               }
   10181            0 :                               {
   10182            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10183            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10184            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10185              : )
   10186              :                                   {
   10187            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1228;
   10188            0 :                                     {
   10189            0 :                                       tree res_op0;
   10190            0 :                                       {
   10191            0 :                                         tree _o1[2], _r1;
   10192            0 :                                         _o1[0] = captures[0];
   10193            0 :                                         _o1[1] = captures[3];
   10194            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10195            0 :                                         res_op0 = _r1;
   10196              :                                       }
   10197            0 :                                       tree res_op1;
   10198            0 :                                       res_op1 = captures[1];
   10199            0 :                                       tree res_op2;
   10200            0 :                                       res_op2 = captures[2];
   10201            0 :                                       tree _r;
   10202            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10203            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10204            0 :                                       return _r;
   10205              :                                     }
   10206            0 : next_after_fail1228:;
   10207              :                                   }
   10208              :                               }
   10209            0 :                               {
   10210            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10211            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10212            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10213              : )
   10214              :                                   {
   10215            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1229;
   10216            0 :                                     {
   10217            0 :                                       tree res_op0;
   10218            0 :                                       {
   10219            0 :                                         tree _o1[2], _r1;
   10220            0 :                                         _o1[0] = captures[0];
   10221            0 :                                         _o1[1] = captures[3];
   10222            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10223            0 :                                         res_op0 = _r1;
   10224              :                                       }
   10225            0 :                                       tree res_op1;
   10226            0 :                                       res_op1 = captures[1];
   10227            0 :                                       tree res_op2;
   10228            0 :                                       res_op2 = captures[2];
   10229            0 :                                       tree _r;
   10230            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10231            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10232            0 :                                       return _r;
   10233              :                                     }
   10234            0 : next_after_fail1229:;
   10235              :                                   }
   10236              :                               }
   10237            0 :                               {
   10238            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10239            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10240            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10241              : )
   10242              :                                   {
   10243            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1230;
   10244            0 :                                     {
   10245            0 :                                       tree res_op0;
   10246            0 :                                       {
   10247            0 :                                         tree _o1[2], _r1;
   10248            0 :                                         _o1[0] = captures[0];
   10249            0 :                                         _o1[1] = captures[3];
   10250            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10251            0 :                                         res_op0 = _r1;
   10252              :                                       }
   10253            0 :                                       tree res_op1;
   10254            0 :                                       res_op1 = captures[1];
   10255            0 :                                       tree res_op2;
   10256            0 :                                       res_op2 = captures[2];
   10257            0 :                                       tree _r;
   10258            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10259            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10260            0 :                                       return _r;
   10261              :                                     }
   10262            0 : next_after_fail1230:;
   10263              :                                   }
   10264              :                               }
   10265            0 :                               {
   10266            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10267            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10268            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10269              : )
   10270              :                                   {
   10271            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1231;
   10272            0 :                                     {
   10273            0 :                                       tree res_op0;
   10274            0 :                                       {
   10275            0 :                                         tree _o1[2], _r1;
   10276            0 :                                         _o1[0] = captures[0];
   10277            0 :                                         _o1[1] = captures[3];
   10278            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10279            0 :                                         res_op0 = _r1;
   10280              :                                       }
   10281            0 :                                       tree res_op1;
   10282            0 :                                       res_op1 = captures[1];
   10283            0 :                                       tree res_op2;
   10284            0 :                                       res_op2 = captures[2];
   10285            0 :                                       tree _r;
   10286            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10287            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10288            0 :                                       return _r;
   10289              :                                     }
   10290            0 : next_after_fail1231:;
   10291              :                                   }
   10292              :                               }
   10293            0 :                               {
   10294            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10295            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10296            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10297              : )
   10298              :                                   {
   10299            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1232;
   10300            0 :                                     {
   10301            0 :                                       tree res_op0;
   10302            0 :                                       {
   10303            0 :                                         tree _o1[2], _r1;
   10304            0 :                                         _o1[0] = captures[0];
   10305            0 :                                         _o1[1] = captures[3];
   10306            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10307            0 :                                         res_op0 = _r1;
   10308              :                                       }
   10309            0 :                                       tree res_op1;
   10310            0 :                                       res_op1 = captures[1];
   10311            0 :                                       tree res_op2;
   10312            0 :                                       res_op2 = captures[2];
   10313            0 :                                       tree _r;
   10314            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10315            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10316            0 :                                       return _r;
   10317              :                                     }
   10318            0 : next_after_fail1232:;
   10319              :                                   }
   10320              :                               }
   10321            0 :                               {
   10322            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10323            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10324            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10325              : )
   10326              :                                   {
   10327            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1233;
   10328            0 :                                     {
   10329            0 :                                       tree res_op0;
   10330            0 :                                       {
   10331            0 :                                         tree _o1[2], _r1;
   10332            0 :                                         _o1[0] = captures[0];
   10333            0 :                                         _o1[1] = captures[3];
   10334            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10335            0 :                                         res_op0 = _r1;
   10336              :                                       }
   10337            0 :                                       tree res_op1;
   10338            0 :                                       res_op1 = captures[1];
   10339            0 :                                       tree res_op2;
   10340            0 :                                       res_op2 = captures[2];
   10341            0 :                                       tree _r;
   10342            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10343            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10344            0 :                                       return _r;
   10345              :                                     }
   10346            0 : next_after_fail1233:;
   10347              :                                   }
   10348              :                               }
   10349            0 :                               {
   10350            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10351            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10352            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10353              : )
   10354              :                                   {
   10355            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1234;
   10356            0 :                                     {
   10357            0 :                                       tree res_op0;
   10358            0 :                                       {
   10359            0 :                                         tree _o1[2], _r1;
   10360            0 :                                         _o1[0] = captures[0];
   10361            0 :                                         _o1[1] = captures[3];
   10362            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10363            0 :                                         res_op0 = _r1;
   10364              :                                       }
   10365            0 :                                       tree res_op1;
   10366            0 :                                       res_op1 = captures[1];
   10367            0 :                                       tree res_op2;
   10368            0 :                                       res_op2 = captures[2];
   10369            0 :                                       tree _r;
   10370            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10371            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10372            0 :                                       return _r;
   10373              :                                     }
   10374            0 : next_after_fail1234:;
   10375              :                                   }
   10376              :                               }
   10377            0 :                               {
   10378            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10379            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10380            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10381              : )
   10382              :                                   {
   10383            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1235;
   10384            0 :                                     {
   10385            0 :                                       tree res_op0;
   10386            0 :                                       {
   10387            0 :                                         tree _o1[2], _r1;
   10388            0 :                                         _o1[0] = captures[0];
   10389            0 :                                         _o1[1] = captures[3];
   10390            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10391            0 :                                         res_op0 = _r1;
   10392              :                                       }
   10393            0 :                                       tree res_op1;
   10394            0 :                                       res_op1 = captures[1];
   10395            0 :                                       tree res_op2;
   10396            0 :                                       res_op2 = captures[2];
   10397            0 :                                       tree _r;
   10398            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10399            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10400            0 :                                       return _r;
   10401              :                                     }
   10402            0 : next_after_fail1235:;
   10403              :                                   }
   10404              :                               }
   10405            0 :                               {
   10406            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10407            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10408            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10409              : )
   10410              :                                   {
   10411            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1236;
   10412            0 :                                     {
   10413            0 :                                       tree res_op0;
   10414            0 :                                       {
   10415            0 :                                         tree _o1[2], _r1;
   10416            0 :                                         _o1[0] = captures[0];
   10417            0 :                                         _o1[1] = captures[3];
   10418            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10419            0 :                                         res_op0 = _r1;
   10420              :                                       }
   10421            0 :                                       tree res_op1;
   10422            0 :                                       res_op1 = captures[1];
   10423            0 :                                       tree res_op2;
   10424            0 :                                       res_op2 = captures[2];
   10425            0 :                                       tree _r;
   10426            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10427            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10428            0 :                                       return _r;
   10429              :                                     }
   10430            0 : next_after_fail1236:;
   10431              :                                   }
   10432              :                               }
   10433            0 :                               {
   10434            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10435            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10436            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10437              : )
   10438              :                                   {
   10439            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1237;
   10440            0 :                                     {
   10441            0 :                                       tree res_op0;
   10442            0 :                                       {
   10443            0 :                                         tree _o1[2], _r1;
   10444            0 :                                         _o1[0] = captures[0];
   10445            0 :                                         _o1[1] = captures[3];
   10446            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10447            0 :                                         res_op0 = _r1;
   10448              :                                       }
   10449            0 :                                       tree res_op1;
   10450            0 :                                       res_op1 = captures[1];
   10451            0 :                                       tree res_op2;
   10452            0 :                                       res_op2 = captures[2];
   10453            0 :                                       tree _r;
   10454            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10455            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10456            0 :                                       return _r;
   10457              :                                     }
   10458            0 : next_after_fail1237:;
   10459              :                                   }
   10460              :                               }
   10461            0 :                               {
   10462            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10463            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10464            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10465              : )
   10466              :                                   {
   10467            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1238;
   10468            0 :                                     {
   10469            0 :                                       tree res_op0;
   10470            0 :                                       {
   10471            0 :                                         tree _o1[2], _r1;
   10472            0 :                                         _o1[0] = captures[0];
   10473            0 :                                         _o1[1] = captures[3];
   10474            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10475            0 :                                         res_op0 = _r1;
   10476              :                                       }
   10477            0 :                                       tree res_op1;
   10478            0 :                                       res_op1 = captures[1];
   10479            0 :                                       tree res_op2;
   10480            0 :                                       res_op2 = captures[2];
   10481            0 :                                       tree _r;
   10482            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10483            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10484            0 :                                       return _r;
   10485              :                                     }
   10486            0 : next_after_fail1238:;
   10487              :                                   }
   10488              :                               }
   10489            0 :                               {
   10490            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10491            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10492            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10493              : )
   10494              :                                   {
   10495            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1239;
   10496            0 :                                     {
   10497            0 :                                       tree res_op0;
   10498            0 :                                       {
   10499            0 :                                         tree _o1[2], _r1;
   10500            0 :                                         _o1[0] = captures[0];
   10501            0 :                                         _o1[1] = captures[3];
   10502            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10503            0 :                                         res_op0 = _r1;
   10504              :                                       }
   10505            0 :                                       tree res_op1;
   10506            0 :                                       res_op1 = captures[1];
   10507            0 :                                       tree res_op2;
   10508            0 :                                       res_op2 = captures[2];
   10509            0 :                                       tree _r;
   10510            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10511            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10512            0 :                                       return _r;
   10513              :                                     }
   10514            0 : next_after_fail1239:;
   10515              :                                   }
   10516              :                               }
   10517            0 :                               {
   10518            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10519            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10520            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10521              : )
   10522              :                                   {
   10523            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1240;
   10524            0 :                                     {
   10525            0 :                                       tree res_op0;
   10526            0 :                                       {
   10527            0 :                                         tree _o1[2], _r1;
   10528            0 :                                         _o1[0] = captures[0];
   10529            0 :                                         _o1[1] = captures[3];
   10530            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10531            0 :                                         res_op0 = _r1;
   10532              :                                       }
   10533            0 :                                       tree res_op1;
   10534            0 :                                       res_op1 = captures[1];
   10535            0 :                                       tree res_op2;
   10536            0 :                                       res_op2 = captures[2];
   10537            0 :                                       tree _r;
   10538            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10539            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10540            0 :                                       return _r;
   10541              :                                     }
   10542            0 : next_after_fail1240:;
   10543              :                                   }
   10544              :                               }
   10545            0 :                               {
   10546            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10547            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10548            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10549              : )
   10550              :                                   {
   10551            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1241;
   10552            0 :                                     {
   10553            0 :                                       tree res_op0;
   10554            0 :                                       {
   10555            0 :                                         tree _o1[2], _r1;
   10556            0 :                                         _o1[0] = captures[0];
   10557            0 :                                         _o1[1] = captures[3];
   10558            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10559            0 :                                         res_op0 = _r1;
   10560              :                                       }
   10561            0 :                                       tree res_op1;
   10562            0 :                                       res_op1 = captures[1];
   10563            0 :                                       tree res_op2;
   10564            0 :                                       res_op2 = captures[2];
   10565            0 :                                       tree _r;
   10566            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10567            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10568            0 :                                       return _r;
   10569              :                                     }
   10570            0 : next_after_fail1241:;
   10571              :                                   }
   10572              :                               }
   10573            0 :                               {
   10574            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
   10575            0 :                                 const enum tree_code lop = BIT_XOR_EXPR;
   10576            0 :                                 if (target_supports_op_p (TREE_TYPE (captures[0]), lop, optab_vector)
   10577              : )
   10578              :                                   {
   10579            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1242;
   10580            0 :                                     {
   10581            0 :                                       tree res_op0;
   10582            0 :                                       {
   10583            0 :                                         tree _o1[2], _r1;
   10584            0 :                                         _o1[0] = captures[0];
   10585            0 :                                         _o1[1] = captures[3];
   10586            0 :                                         _r1 = fold_build2_loc (loc, lop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10587            0 :                                         res_op0 = _r1;
   10588              :                                       }
   10589            0 :                                       tree res_op1;
   10590            0 :                                       res_op1 = captures[1];
   10591            0 :                                       tree res_op2;
   10592            0 :                                       res_op2 = captures[2];
   10593            0 :                                       tree _r;
   10594            0 :                                       _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10595            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
   10596            0 :                                       return _r;
   10597              :                                     }
   10598            0 : next_after_fail1242:;
   10599              :                                   }
   10600              :                               }
   10601              :                             }
   10602              :                         }
   10603              :                       break;
   10604              :                     }
   10605              :                   default:;
   10606              :                   }
   10607              :               }
   10608              :           }
   10609            1 :         {
   10610            1 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10611            1 :           if (VECTOR_TYPE_P (type)
   10612            1 :  && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
   10613              :  || types_match (type, TREE_TYPE (captures[2]))
   10614              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10615              :  || (optimize_vectors_before_lowering_p ()
   10616              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10617              : )
   10618              :             {
   10619            1 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1243;
   10620            1 :               {
   10621            1 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1243;
   10622            0 :                 tree res_op0;
   10623            0 :                 res_op0 = captures[1];
   10624            0 :                 tree res_op1;
   10625            0 :                 {
   10626            0 :                   tree _o1[2], _r1;
   10627            0 :                   _o1[0] = captures[2];
   10628            0 :                   _o1[1] = unshare_expr (captures[4]);
   10629            0 :                   _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
   10630            0 :                   if (EXPR_P (_r1))
   10631            0 :                     goto next_after_fail1243;
   10632            0 :                   res_op1 = _r1;
   10633              :                 }
   10634            0 :                 tree res_op2;
   10635            0 :                 {
   10636            0 :                   tree _o1[2], _r1;
   10637            0 :                   _o1[0] = captures[3];
   10638            0 :                   _o1[1] = captures[4];
   10639            0 :                   _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
   10640            0 :                   if (EXPR_P (_r1))
   10641            0 :                     goto next_after_fail1243;
   10642            0 :                   res_op2 = _r1;
   10643              :                 }
   10644            0 :                 tree _r;
   10645            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10646            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
   10647            0 :                 return _r;
   10648              :               }
   10649            1 : next_after_fail1243:;
   10650              :             }
   10651              :         }
   10652            1 :         break;
   10653              :       }
   10654       948783 :     default:;
   10655              :     }
   10656       948783 :   switch (TREE_CODE (_p1))
   10657              :     {
   10658            0 :     case VEC_COND_EXPR:
   10659            0 :       {
   10660            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10661            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10662            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10663            0 :         {
   10664            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10665            0 :           if (VECTOR_TYPE_P (type)
   10666            0 :  && (TREE_CODE_CLASS (BIT_XOR_EXPR) != tcc_comparison
   10667              :  || types_match (type, TREE_TYPE (captures[3]))
   10668              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10669              :  || (optimize_vectors_before_lowering_p ()
   10670              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10671              : )
   10672              :             {
   10673            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1244;
   10674            0 :               {
   10675            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1244;
   10676            0 :                 tree res_op0;
   10677            0 :                 res_op0 = captures[2];
   10678            0 :                 tree res_op1;
   10679            0 :                 {
   10680            0 :                   tree _o1[2], _r1;
   10681            0 :                   _o1[0] = unshare_expr (captures[0]);
   10682            0 :                   _o1[1] = captures[3];
   10683            0 :                   _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
   10684            0 :                   if (EXPR_P (_r1))
   10685            0 :                     goto next_after_fail1244;
   10686            0 :                   res_op1 = _r1;
   10687              :                 }
   10688            0 :                 tree res_op2;
   10689            0 :                 {
   10690            0 :                   tree _o1[2], _r1;
   10691            0 :                   _o1[0] = captures[0];
   10692            0 :                   _o1[1] = captures[4];
   10693            0 :                   _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, type, _o1[0], _o1[1]);
   10694            0 :                   if (EXPR_P (_r1))
   10695            0 :                     goto next_after_fail1244;
   10696            0 :                   res_op2 = _r1;
   10697              :                 }
   10698            0 :                 tree _r;
   10699            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10700            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 901, __FILE__, __LINE__, true);
   10701            0 :                 return _r;
   10702              :               }
   10703            0 : next_after_fail1244:;
   10704              :             }
   10705              :         }
   10706            0 :         break;
   10707              :       }
   10708       948783 :     default:;
   10709              :     }
   10710       948783 :   switch (TREE_CODE (_p0))
   10711              :     {
   10712           90 :     case LT_EXPR:
   10713           90 :       {
   10714           90 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10715           90 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10716           90 :         if (integer_truep (_p1))
   10717              :           {
   10718           14 :             {
   10719           14 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10720           14 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
   10721           14 :               if (res) return res;
   10722              :             }
   10723              :           }
   10724           76 :         if (integer_zerop (_q21))
   10725              :           {
   10726           24 :             switch (TREE_CODE (_p1))
   10727              :               {
   10728           17 :               case LT_EXPR:
   10729           17 :                 {
   10730           17 :                   tree _q50 = TREE_OPERAND (_p1, 0);
   10731           17 :                   tree _q51 = TREE_OPERAND (_p1, 1);
   10732           17 :                   if (integer_zerop (_q51))
   10733              :                     {
   10734           17 :                       {
   10735           17 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
   10736           17 :                         tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, LT_EXPR);
   10737           17 :                         if (res) return res;
   10738              :                       }
   10739              :                     }
   10740              :                   break;
   10741              :                 }
   10742            0 :               case GE_EXPR:
   10743            0 :                 {
   10744            0 :                   tree _q50 = TREE_OPERAND (_p1, 0);
   10745            0 :                   tree _q51 = TREE_OPERAND (_p1, 1);
   10746            0 :                   if (integer_zerop (_q51))
   10747              :                     {
   10748            0 :                       {
   10749            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
   10750            0 :                         tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
   10751            0 :                         if (res) return res;
   10752              :                       }
   10753              :                     }
   10754              :                   break;
   10755              :                 }
   10756              :               default:;
   10757              :               }
   10758              :           }
   10759              :         break;
   10760              :       }
   10761           85 :     case LE_EXPR:
   10762           85 :       {
   10763           85 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10764           85 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10765           85 :         if (integer_truep (_p1))
   10766              :           {
   10767           15 :             {
   10768           15 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10769           15 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
   10770           15 :               if (res) return res;
   10771              :             }
   10772              :           }
   10773              :         break;
   10774              :       }
   10775          119 :     case EQ_EXPR:
   10776          119 :       {
   10777          119 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10778          119 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10779          119 :         if (integer_truep (_p1))
   10780              :           {
   10781           14 :             {
   10782           14 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10783           14 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
   10784           14 :               if (res) return res;
   10785              :             }
   10786              :           }
   10787              :         break;
   10788              :       }
   10789          113 :     case NE_EXPR:
   10790          113 :       {
   10791          113 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10792          113 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10793          113 :         if (integer_truep (_p1))
   10794              :           {
   10795            7 :             {
   10796            7 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10797            7 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
   10798            7 :               if (res) return res;
   10799              :             }
   10800              :           }
   10801              :         break;
   10802              :       }
   10803           62 :     case GE_EXPR:
   10804           62 :       {
   10805           62 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10806           62 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10807           62 :         if (integer_truep (_p1))
   10808              :           {
   10809            0 :             {
   10810            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10811            0 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
   10812            0 :               if (res) return res;
   10813              :             }
   10814              :           }
   10815           62 :         if (integer_zerop (_q21))
   10816              :           {
   10817           26 :             switch (TREE_CODE (_p1))
   10818              :               {
   10819            1 :               case GE_EXPR:
   10820            1 :                 {
   10821            1 :                   tree _q50 = TREE_OPERAND (_p1, 0);
   10822            1 :                   tree _q51 = TREE_OPERAND (_p1, 1);
   10823            1 :                   if (integer_zerop (_q51))
   10824              :                     {
   10825            1 :                       {
   10826            1 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q50 };
   10827            1 :                         tree res = generic_simplify_51 (loc, type, _p0, _p1, captures, GE_EXPR);
   10828            1 :                         if (res) return res;
   10829              :                       }
   10830              :                     }
   10831              :                   break;
   10832              :                 }
   10833            5 :               case LT_EXPR:
   10834            5 :                 {
   10835            5 :                   tree _q50 = TREE_OPERAND (_p1, 0);
   10836            5 :                   tree _q51 = TREE_OPERAND (_p1, 1);
   10837            5 :                   if (integer_zerop (_q51))
   10838              :                     {
   10839            5 :                       {
   10840            5 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _p0, _q20 };
   10841            5 :                         tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
   10842            5 :                         if (res) return res;
   10843              :                       }
   10844              :                     }
   10845              :                   break;
   10846              :                 }
   10847              :               default:;
   10848              :               }
   10849              :           }
   10850              :         break;
   10851              :       }
   10852          100 :     case GT_EXPR:
   10853          100 :       {
   10854          100 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10855          100 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10856          100 :         if (integer_truep (_p1))
   10857              :           {
   10858           14 :             {
   10859           14 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10860           14 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
   10861           14 :               if (res) return res;
   10862              :             }
   10863              :           }
   10864              :         break;
   10865              :       }
   10866            0 :     case UNORDERED_EXPR:
   10867            0 :       {
   10868            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10869            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10870            0 :         if (integer_truep (_p1))
   10871              :           {
   10872            0 :             {
   10873            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10874            0 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
   10875            0 :               if (res) return res;
   10876              :             }
   10877              :           }
   10878              :         break;
   10879              :       }
   10880            0 :     case ORDERED_EXPR:
   10881            0 :       {
   10882            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10883            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10884            0 :         if (integer_truep (_p1))
   10885              :           {
   10886            0 :             {
   10887            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10888            0 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
   10889            0 :               if (res) return res;
   10890              :             }
   10891              :           }
   10892              :         break;
   10893              :       }
   10894            0 :     case UNLT_EXPR:
   10895            0 :       {
   10896            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10897            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10898            0 :         if (integer_truep (_p1))
   10899              :           {
   10900            0 :             {
   10901            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10902            0 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
   10903            0 :               if (res) return res;
   10904              :             }
   10905              :           }
   10906              :         break;
   10907              :       }
   10908            0 :     case UNLE_EXPR:
   10909            0 :       {
   10910            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10911            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10912            0 :         if (integer_truep (_p1))
   10913              :           {
   10914            0 :             {
   10915            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10916            0 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
   10917            0 :               if (res) return res;
   10918              :             }
   10919              :           }
   10920              :         break;
   10921              :       }
   10922            0 :     case UNGT_EXPR:
   10923            0 :       {
   10924            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10925            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10926            0 :         if (integer_truep (_p1))
   10927              :           {
   10928            0 :             {
   10929            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10930            0 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
   10931            0 :               if (res) return res;
   10932              :             }
   10933              :           }
   10934              :         break;
   10935              :       }
   10936            0 :     case UNGE_EXPR:
   10937            0 :       {
   10938            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10939            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10940            0 :         if (integer_truep (_p1))
   10941              :           {
   10942            0 :             {
   10943            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10944            0 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
   10945            0 :               if (res) return res;
   10946              :             }
   10947              :           }
   10948              :         break;
   10949              :       }
   10950            0 :     case UNEQ_EXPR:
   10951            0 :       {
   10952            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10953            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10954            0 :         if (integer_truep (_p1))
   10955              :           {
   10956            0 :             {
   10957            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10958            0 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
   10959            0 :               if (res) return res;
   10960              :             }
   10961              :           }
   10962              :         break;
   10963              :       }
   10964            0 :     case LTGT_EXPR:
   10965            0 :       {
   10966            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10967            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10968            0 :         if (integer_truep (_p1))
   10969              :           {
   10970            0 :             {
   10971            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10972            0 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
   10973            0 :               if (res) return res;
   10974              :             }
   10975              :           }
   10976              :         break;
   10977              :       }
   10978            7 :     case VEC_PERM_EXPR:
   10979            7 :       {
   10980            7 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10981            7 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10982            7 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10983            7 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
   10984              :           {
   10985            0 :             switch (TREE_CODE (_p1))
   10986              :               {
   10987            0 :               case VEC_PERM_EXPR:
   10988            0 :                 {
   10989            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
   10990            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
   10991            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
   10992            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
   10993              :                     {
   10994            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
   10995              :                         {
   10996            0 :                           {
   10997            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
   10998            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
   10999              : )
   11000              :                               {
   11001            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1245;
   11002            0 :                                 {
   11003            0 :                                   tree res_op0;
   11004            0 :                                   {
   11005            0 :                                     tree _o1[2], _r1;
   11006            0 :                                     _o1[0] = captures[0];
   11007            0 :                                     _o1[1] = captures[2];
   11008            0 :                                     _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11009            0 :                                     captures[3] = _r1;
   11010              :                                   }
   11011            0 :                                   res_op0 = unshare_expr (captures[3]);
   11012            0 :                                   tree res_op1;
   11013            0 :                                   res_op1 = captures[3];
   11014            0 :                                   tree res_op2;
   11015            0 :                                   res_op2 = captures[1];
   11016            0 :                                   tree _r;
   11017            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   11018            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
   11019            0 :                                   return _r;
   11020              :                                 }
   11021            0 : next_after_fail1245:;
   11022              :                               }
   11023              :                           }
   11024              :                         }
   11025              :                     }
   11026              :                   break;
   11027              :                 }
   11028              :               default:;
   11029              :               }
   11030              :           }
   11031              :         break;
   11032              :       }
   11033         3289 :     case CALL_EXPR:
   11034         3289 :       switch (get_call_combined_fn (_p0))
   11035              :         {
   11036            1 :         case CFN_PARITY:
   11037            1 :           if (call_expr_nargs (_p0) == 1)
   11038              :     {
   11039            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11040            1 :               switch (TREE_CODE (_p1))
   11041              :                 {
   11042            1 :                 case CALL_EXPR:
   11043            1 :                   switch (get_call_combined_fn (_p1))
   11044              :                     {
   11045            1 :                     case CFN_PARITY:
   11046            1 :                       if (call_expr_nargs (_p1) == 1)
   11047              :     {
   11048            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11049            1 :                           {
   11050            1 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11051            1 :                             tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_PARITY);
   11052            1 :                             if (res) return res;
   11053              :                           }
   11054              :                         }
   11055              :                       break;
   11056              :                     default:;
   11057              :                     }
   11058              :                   break;
   11059              :                 default:;
   11060              :                 }
   11061              :             }
   11062              :           break;
   11063            1 :         case CFN_BUILT_IN_PARITYL:
   11064            1 :           if (call_expr_nargs (_p0) == 1)
   11065              :     {
   11066            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11067            1 :               switch (TREE_CODE (_p1))
   11068              :                 {
   11069            1 :                 case CALL_EXPR:
   11070            1 :                   switch (get_call_combined_fn (_p1))
   11071              :                     {
   11072            1 :                     case CFN_BUILT_IN_PARITYL:
   11073            1 :                       if (call_expr_nargs (_p1) == 1)
   11074              :     {
   11075            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11076            1 :                           {
   11077            1 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11078            1 :                             tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYL);
   11079            1 :                             if (res) return res;
   11080              :                           }
   11081              :                         }
   11082              :                       break;
   11083              :                     default:;
   11084              :                     }
   11085              :                   break;
   11086              :                 default:;
   11087              :                 }
   11088              :             }
   11089              :           break;
   11090            0 :         case CFN_BUILT_IN_PARITYIMAX:
   11091            0 :           if (call_expr_nargs (_p0) == 1)
   11092              :     {
   11093            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11094            0 :               switch (TREE_CODE (_p1))
   11095              :                 {
   11096            0 :                 case CALL_EXPR:
   11097            0 :                   switch (get_call_combined_fn (_p1))
   11098              :                     {
   11099            0 :                     case CFN_BUILT_IN_PARITYIMAX:
   11100            0 :                       if (call_expr_nargs (_p1) == 1)
   11101              :     {
   11102            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11103            0 :                           {
   11104            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11105            0 :                             tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYIMAX);
   11106            0 :                             if (res) return res;
   11107              :                           }
   11108              :                         }
   11109              :                       break;
   11110              :                     default:;
   11111              :                     }
   11112              :                   break;
   11113              :                 default:;
   11114              :                 }
   11115              :             }
   11116              :           break;
   11117            1 :         case CFN_BUILT_IN_PARITY:
   11118            1 :           if (call_expr_nargs (_p0) == 1)
   11119              :     {
   11120            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11121            1 :               switch (TREE_CODE (_p1))
   11122              :                 {
   11123            1 :                 case CALL_EXPR:
   11124            1 :                   switch (get_call_combined_fn (_p1))
   11125              :                     {
   11126            1 :                     case CFN_BUILT_IN_PARITY:
   11127            1 :                       if (call_expr_nargs (_p1) == 1)
   11128              :     {
   11129            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11130            1 :                           {
   11131            1 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11132            1 :                             tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITY);
   11133            1 :                             if (res) return res;
   11134              :                           }
   11135              :                         }
   11136              :                       break;
   11137              :                     default:;
   11138              :                     }
   11139              :                   break;
   11140              :                 default:;
   11141              :                 }
   11142              :             }
   11143              :           break;
   11144            8 :         case CFN_BUILT_IN_PARITYLL:
   11145            8 :           if (call_expr_nargs (_p0) == 1)
   11146              :     {
   11147            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11148            8 :               switch (TREE_CODE (_p1))
   11149              :                 {
   11150            8 :                 case CALL_EXPR:
   11151            8 :                   switch (get_call_combined_fn (_p1))
   11152              :                     {
   11153            8 :                     case CFN_BUILT_IN_PARITYLL:
   11154            8 :                       if (call_expr_nargs (_p1) == 1)
   11155              :     {
   11156            8 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11157            8 :                           {
   11158            8 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11159            8 :                             tree res = generic_simplify_53 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_PARITYLL);
   11160            8 :                             if (res) return res;
   11161              :                           }
   11162              :                         }
   11163              :                       break;
   11164              :                     default:;
   11165              :                     }
   11166              :                   break;
   11167              :                 default:;
   11168              :                 }
   11169              :             }
   11170              :           break;
   11171              :         default:;
   11172              :         }
   11173              :       break;
   11174              :     default:;
   11175              :     }
   11176              :   return NULL_TREE;
   11177              : }
   11178              : 
   11179              : tree
   11180       920902 : generic_simplify_BIT_FIELD_REF (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
   11181              : {
   11182       920902 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11183       920902 :   switch (TREE_CODE (_p0))
   11184              :     {
   11185           16 :     case BIT_FIELD_REF:
   11186           16 :       {
   11187           16 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11188           16 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11189           16 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11190           16 :         {
   11191           16 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   11192           16 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1976;
   11193           16 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1976;
   11194           16 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1976;
   11195           16 :           {
   11196           16 :             tree res_op0;
   11197           16 :             res_op0 = captures[0];
   11198           16 :             tree res_op1;
   11199           16 :             res_op1 = captures[3];
   11200           16 :             tree res_op2;
   11201           16 :             res_op2 =  const_binop (PLUS_EXPR, bitsizetype, captures[2], captures[4]);
   11202           16 :             tree _r;
   11203           16 :             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11204           16 :             if (TREE_SIDE_EFFECTS (captures[1]))
   11205            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11206           16 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1088, __FILE__, __LINE__, true);
   11207           16 :             return _r;
   11208              :           }
   11209            0 : next_after_fail1976:;
   11210              :         }
   11211            0 :         break;
   11212              :       }
   11213            3 :     case VIEW_CONVERT_EXPR:
   11214            3 :       {
   11215            3 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11216            3 :         {
   11217            3 :           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
   11218            6 :           if (! INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11219            6 :  || type_has_mode_precision_p (TREE_TYPE (captures[0]))
   11220              : )
   11221              :             {
   11222            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1977;
   11223            0 :               {
   11224            0 :                 tree res_op0;
   11225            0 :                 res_op0 = captures[0];
   11226            0 :                 tree res_op1;
   11227            0 :                 res_op1 = captures[1];
   11228            0 :                 tree res_op2;
   11229            0 :                 res_op2 = captures[2];
   11230            0 :                 tree _r;
   11231            0 :                 _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11232            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1089, __FILE__, __LINE__, true);
   11233            0 :                 return _r;
   11234              :               }
   11235            0 : next_after_fail1977:;
   11236              :             }
   11237              :         }
   11238            3 :         break;
   11239              :       }
   11240       920886 :     default:;
   11241              :     }
   11242       920886 :   if (integer_zerop (_p2))
   11243              :     {
   11244       301618 :       {
   11245       301618 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11246       301618 :         if (tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (captures[0])))
   11247              : )
   11248              :           {
   11249         2665 :             if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1978;
   11250         2665 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1978;
   11251         2665 :             {
   11252         2665 :               tree res_op0;
   11253         2665 :               res_op0 = captures[0];
   11254         2665 :               tree _r;
   11255         2665 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11256         2665 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11257            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11258         2665 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1090, __FILE__, __LINE__, true);
   11259         2665 :               return _r;
   11260              :             }
   11261       298953 : next_after_fail1978:;
   11262              :           }
   11263              :       }
   11264              :     }
   11265       918221 :   {
   11266       918221 :     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11267       918221 :     if (TREE_CODE (TREE_TYPE (captures[0])) == COMPLEX_TYPE
   11268       918221 :  && tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11269              : )
   11270              :       {
   11271            2 :         if (integer_zerop (captures[2])
   11272              : )
   11273              :           {
   11274            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1979;
   11275            0 :             {
   11276            0 :               tree res_op0;
   11277            0 :               {
   11278            0 :                 tree _o1[1], _r1;
   11279            0 :                 _o1[0] = captures[0];
   11280            0 :                 _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11281            0 :                 res_op0 = _r1;
   11282              :               }
   11283            0 :               tree _r;
   11284            0 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11285            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11286            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11287            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11288            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11289            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1091, __FILE__, __LINE__, true);
   11290            0 :               return _r;
   11291              :             }
   11292            0 : next_after_fail1979:;
   11293              :           }
   11294              :         else
   11295              :           {
   11296            2 :             if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11297              : )
   11298              :               {
   11299            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1980;
   11300            0 :                 {
   11301            0 :                   tree res_op0;
   11302            0 :                   {
   11303            0 :                     tree _o1[1], _r1;
   11304            0 :                     _o1[0] = captures[0];
   11305            0 :                     _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11306            0 :                     res_op0 = _r1;
   11307              :                   }
   11308            0 :                   tree _r;
   11309            0 :                   _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11310            0 :                   if (TREE_SIDE_EFFECTS (captures[1]))
   11311            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11312            0 :                   if (TREE_SIDE_EFFECTS (captures[2]))
   11313            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11314            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1092, __FILE__, __LINE__, true);
   11315            0 :                   return _r;
   11316              :                 }
   11317            0 : next_after_fail1980:;
   11318              :               }
   11319              :           }
   11320              :       }
   11321              :     else
   11322              :       {
   11323      1836376 :         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11324        20625 :  && INTEGRAL_TYPE_P (type)
   11325              :  && (!
   11326              : 
   11327              :  || is_gimple_reg (captures[0]))
   11328       937877 :  && ((compare_tree_int (captures[1], TYPE_PRECISION (TREE_TYPE (captures[0]))) == 0
   11329            0 :  && integer_zerop (captures[2]))
   11330              :  || (BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN
   11331              :  && canonicalize_math_after_vectorization_p ()
   11332              :  && TYPE_PRECISION (TREE_TYPE (captures[0])) % BITS_PER_UNIT == 0
   11333              :  && TYPE_PRECISION (type) % BITS_PER_UNIT == 0
   11334              :  && compare_tree_int (captures[2], (BYTES_BIG_ENDIAN
   11335              :  ? (TYPE_PRECISION (TREE_TYPE (captures[0]))
   11336              :  - TYPE_PRECISION (type))
   11337              :  : 0)) == 0))
   11338              : )
   11339              :           {
   11340            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1981;
   11341            0 :             {
   11342            0 :               tree res_op0;
   11343            0 :               res_op0 = captures[0];
   11344            0 :               tree _r;
   11345            0 :               _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11346            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11347            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11348            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11349            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11350            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1093, __FILE__, __LINE__, true);
   11351            0 :               return _r;
   11352              :             }
   11353            0 : next_after_fail1981:;
   11354              :           }
   11355              :       }
   11356              :   }
   11357       918221 :   switch (TREE_CODE (_p0))
   11358              :     {
   11359         2289 :     case CONSTRUCTOR:
   11360         2289 :       {
   11361         2289 :         {
   11362         2289 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11363         2289 :           if (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
   11364         2289 :  && tree_fits_uhwi_p (TYPE_SIZE (type))
   11365         4578 :  && ((tree_to_uhwi (TYPE_SIZE (type))
   11366         2289 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
   11367            0 :  || (VECTOR_TYPE_P (type)
   11368            0 :  && (tree_to_uhwi (TYPE_SIZE (TREE_TYPE (type)))
   11369            0 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))))
   11370              : )
   11371              :             {
   11372         2289 :               {
   11373         2289 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
   11374              :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
   11375         2289 :  tree eltype = TREE_TYPE (TREE_TYPE (ctor));
   11376         2289 :  unsigned HOST_WIDE_INT width = tree_to_uhwi (TYPE_SIZE (eltype));
   11377         2289 :  unsigned HOST_WIDE_INT n = tree_to_uhwi (captures[1]);
   11378         2289 :  unsigned HOST_WIDE_INT idx = tree_to_uhwi (captures[2]);
   11379         2289 :                   if (n != 0
   11380         2289 :  && (idx % width) == 0
   11381         2289 :  && (n % width) == 0
   11382         4578 :  && known_le ((idx + n) / width,
   11383              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor)))
   11384              : )
   11385              :                     {
   11386         2289 :                       {
   11387         2289 :  idx = idx / width;
   11388         2289 :  n = n / width;
   11389         2289 :  poly_uint64 k = 1;
   11390         2289 :  if (CONSTRUCTOR_NELTS (ctor) != 0)
   11391              :  {
   11392         2289 :  tree cons_elem = TREE_TYPE (CONSTRUCTOR_ELT (ctor, 0)->value);
   11393         2289 :  if (TREE_CODE (cons_elem) == VECTOR_TYPE)
   11394         2289 :  k = TYPE_VECTOR_SUBPARTS (cons_elem);
   11395              :  }
   11396         2289 :  unsigned HOST_WIDE_INT elt, count, const_k;
   11397         2289 :                           if (multiple_p (idx, k, &elt) && multiple_p (n, k, &count)
   11398              : )
   11399              :                             {
   11400           12 :                               if (CONSTRUCTOR_NELTS (ctor) == 0
   11401              : )
   11402              :                                 {
   11403            0 :                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1982;
   11404            0 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1982;
   11405            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1982;
   11406            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1982;
   11407            0 :                                   {
   11408            0 :                                     tree _r;
   11409            0 :                                     _r =  build_zero_cst (type);
   11410            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1094, __FILE__, __LINE__, true);
   11411         2289 :                                     return _r;
   11412              :                                   }
   11413              : next_after_fail1982:;
   11414              :                                 }
   11415              :                               else
   11416              :                                 {
   11417           12 :                                   if (count == 1
   11418              : )
   11419              :                                     {
   11420           12 :                                       if (elt < CONSTRUCTOR_NELTS (ctor)
   11421              : )
   11422              :                                         {
   11423           12 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1983;
   11424           12 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1983;
   11425           12 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1983;
   11426           12 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1983;
   11427           12 :                                           {
   11428           12 :                                             tree res_op0;
   11429           12 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, elt)->value;
   11430           12 :                                             tree _r;
   11431           12 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11432           12 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1095, __FILE__, __LINE__, true);
   11433           12 :                                             return _r;
   11434              :                                           }
   11435              : next_after_fail1983:;
   11436              :                                         }
   11437              :                                       else
   11438              :                                         {
   11439            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1984;
   11440            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1984;
   11441            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1984;
   11442            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1984;
   11443            0 :                                           {
   11444            0 :                                             tree _r;
   11445            0 :                                             _r =  build_zero_cst (type);
   11446            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1096, __FILE__, __LINE__, true);
   11447            0 :                                             return _r;
   11448              :                                           }
   11449              : next_after_fail1984:;
   11450              :                                         }
   11451              :                                     }
   11452              :                                   else
   11453              :                                     {
   11454            0 :                                       if (single_use (captures[0])
   11455              : )
   11456              :                                         {
   11457            0 :                                           {
   11458            0 :  vec<constructor_elt, va_gc> *vals;
   11459            0 :  vec_alloc (vals, count);
   11460            0 :  bool constant_p = true;
   11461            0 :  tree res;
   11462            0 :  for (unsigned i = 0;
   11463            0 :  i < count && elt + i < CONSTRUCTOR_NELTS (ctor); ++i)
   11464              :  {
   11465            0 :  tree e = CONSTRUCTOR_ELT (ctor, elt + i)->value;
   11466            0 :  CONSTRUCTOR_APPEND_ELT (vals, NULL_TREE, e);
   11467            0 :  if (!CONSTANT_CLASS_P (e))
   11468            0 :  constant_p = false;
   11469              :  }
   11470            0 :  tree evtype = (types_match (TREE_TYPE (type),
   11471            0 :  TREE_TYPE (TREE_TYPE (ctor)))
   11472            0 :  ? type
   11473            0 :  : build_vector_type (TREE_TYPE (TREE_TYPE (ctor)),
   11474            0 :  count * k));
   11475            0 :  res = (constant_p ? build_vector_from_ctor (evtype, vals)
   11476              :  : (
   11477              : 
   11478            0 :  ? NULL_TREE : build_constructor (evtype, vals)));
   11479            0 :                                               if (res
   11480              : )
   11481              :                                                 {
   11482            0 :                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1985;
   11483            0 :                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1985;
   11484            0 :                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1985;
   11485            0 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1985;
   11486            0 :                                                   {
   11487            0 :                                                     tree res_op0;
   11488            0 :                                                     res_op0 =  res;
   11489            0 :                                                     tree _r;
   11490            0 :                                                     _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11491            0 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1097, __FILE__, __LINE__, true);
   11492            0 :                                                     return _r;
   11493              :                                                   }
   11494            0 : next_after_fail1985:;
   11495              :                                                 }
   11496              :                                           }
   11497              :                                         }
   11498              :                                     }
   11499              :                                 }
   11500              :                             }
   11501              :                           else
   11502              :                             {
   11503         2277 :                               if (k.is_constant (&const_k)
   11504         2277 :  && idx + n <= (idx / const_k + 1) * const_k
   11505              : )
   11506              :                                 {
   11507         2277 :                                   if (CONSTRUCTOR_NELTS (ctor) <= idx / const_k
   11508              : )
   11509              :                                     {
   11510            0 :                                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1986;
   11511            0 :                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1986;
   11512            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1986;
   11513            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1986;
   11514            0 :                                       {
   11515            0 :                                         tree _r;
   11516            0 :                                         _r =  build_zero_cst (type);
   11517            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1098, __FILE__, __LINE__, true);
   11518            0 :                                         return _r;
   11519              :                                       }
   11520              : next_after_fail1986:;
   11521              :                                     }
   11522              :                                   else
   11523              :                                     {
   11524         2277 :                                       if (n == const_k
   11525              : )
   11526              :                                         {
   11527            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1987;
   11528            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1987;
   11529            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1987;
   11530            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1987;
   11531            0 :                                           {
   11532            0 :                                             tree res_op0;
   11533            0 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   11534            0 :                                             tree _r;
   11535            0 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11536            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1099, __FILE__, __LINE__, true);
   11537            0 :                                             return _r;
   11538              :                                           }
   11539              : next_after_fail1987:;
   11540              :                                         }
   11541              :                                       else
   11542              :                                         {
   11543         2277 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1988;
   11544         2277 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1988;
   11545         2277 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1988;
   11546         2277 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1988;
   11547         2277 :                                           {
   11548         2277 :                                             tree res_op0;
   11549         2277 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   11550         2277 :                                             tree res_op1;
   11551         2277 :                                             res_op1 = captures[1];
   11552         2277 :                                             tree res_op2;
   11553         2277 :                                             res_op2 =  bitsize_int ((idx % const_k) * width);
   11554         2277 :                                             tree _r;
   11555         2277 :                                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11556         2277 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1100, __FILE__, __LINE__, true);
   11557         2277 :                                             return _r;
   11558              :                                           }
   11559              : next_after_fail1988:;
   11560              :                                         }
   11561              :                                     }
   11562              :                                 }
   11563              :                             }
   11564              :                       }
   11565              :                     }
   11566              :               }
   11567              :             }
   11568              :         }
   11569            0 :         break;
   11570              :       }
   11571            0 :     case VEC_PERM_EXPR:
   11572            0 :       {
   11573            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11574            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11575            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11576            0 :         switch (TREE_CODE (_q22))
   11577              :           {
   11578            0 :           case VECTOR_CST:
   11579            0 :             {
   11580            0 :               {
   11581            0 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _p2 };
   11582            0 :                 {
   11583            0 :  tree elem_type = TREE_TYPE (TREE_TYPE (captures[0]));
   11584            0 :  poly_uint64 elem_size = tree_to_poly_uint64 (TYPE_SIZE (elem_type));
   11585            0 :  poly_uint64 size = tree_to_poly_uint64 (TYPE_SIZE (type));
   11586            0 :  unsigned HOST_WIDE_INT nelts, idx;
   11587            0 :  unsigned HOST_WIDE_INT nelts_op = 0;
   11588            0 :                     if (constant_multiple_p (tree_to_poly_uint64 (captures[5]), elem_size, &idx)
   11589            0 :  && VECTOR_CST_NELTS (captures[3]).is_constant (&nelts)
   11590            0 :  && (known_eq (size, elem_size)
   11591            0 :  || (constant_multiple_p (size, elem_size, &nelts_op)
   11592            0 :  && pow2p_hwi (nelts_op)))
   11593              : )
   11594              :                       {
   11595            0 :                         {
   11596            0 :  bool ok = true;
   11597            0 :  if (known_eq (size, elem_size))
   11598            0 :  idx = TREE_INT_CST_LOW (VECTOR_CST_ELT (captures[3], idx)) % (2 * nelts);
   11599              :  else
   11600              :  {
   11601            0 :  unsigned start
   11602            0 :  = TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx)) % (2 * nelts);
   11603            0 :  unsigned end
   11604            0 :  = (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + nelts_op - 1))
   11605            0 :  % (2 * nelts));
   11606            0 :  if ((start < nelts) != (end < nelts))
   11607              :  ok = false;
   11608              :  else
   11609            0 :  for (unsigned HOST_WIDE_INT i = 1; i != nelts_op; i++)
   11610              :  {
   11611            0 :  if ((TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i))
   11612            0 :  % (2 * nelts) - 1)
   11613            0 :  != (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i - 1))
   11614            0 :  % (2 * nelts)))
   11615              :  {
   11616              :  ok = false;
   11617              :  break;
   11618              :  }
   11619              :  }
   11620            0 :  if (start % nelts_op)
   11621              :  ok = false;
   11622            0 :  idx = start;
   11623              :  }
   11624            0 :                             if (ok
   11625              : )
   11626              :                               {
   11627            0 :                                 if (idx < nelts
   11628              : )
   11629              :                                   {
   11630            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1989;
   11631            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1989;
   11632            0 :                                     {
   11633            0 :                                       tree res_op0;
   11634            0 :                                       res_op0 = captures[1];
   11635            0 :                                       tree res_op1;
   11636            0 :                                       res_op1 = captures[4];
   11637            0 :                                       tree res_op2;
   11638            0 :                                       res_op2 =  bitsize_int (idx * elem_size);
   11639            0 :                                       tree _r;
   11640            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11641            0 :                                       if (TREE_SIDE_EFFECTS (captures[2]))
   11642            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11643            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11644            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11645            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1101, __FILE__, __LINE__, true);
   11646            0 :                                       return _r;
   11647              :                                     }
   11648            0 : next_after_fail1989:;
   11649              :                                   }
   11650              :                                 else
   11651              :                                   {
   11652            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1990;
   11653            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1990;
   11654            0 :                                     {
   11655            0 :                                       tree res_op0;
   11656            0 :                                       res_op0 = captures[2];
   11657            0 :                                       tree res_op1;
   11658            0 :                                       res_op1 = captures[4];
   11659            0 :                                       tree res_op2;
   11660            0 :                                       res_op2 =  bitsize_int ((idx - nelts) * elem_size);
   11661            0 :                                       tree _r;
   11662            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11663            0 :                                       if (TREE_SIDE_EFFECTS (captures[1]))
   11664            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11665            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11666            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11667            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1102, __FILE__, __LINE__, true);
   11668            0 :                                       return _r;
   11669              :                                     }
   11670            0 : next_after_fail1990:;
   11671              :                                   }
   11672              :                               }
   11673              :                         }
   11674              :                       }
   11675              :                 }
   11676              :               }
   11677            0 :               break;
   11678              :             }
   11679              :           default:;
   11680              :           }
   11681              :         break;
   11682              :       }
   11683            0 :     case BIT_INSERT_EXPR:
   11684            0 :       {
   11685            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11686            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11687            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11688            0 :         {
   11689            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   11690            0 :           {
   11691            0 :  unsigned HOST_WIDE_INT isize;
   11692            0 :  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])))
   11693            0 :  isize = TYPE_PRECISION (TREE_TYPE (captures[1]));
   11694              :  else
   11695            0 :  isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (captures[1])));
   11696            0 :               if ((!INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
   11697            0 :  || type_has_mode_precision_p (TREE_TYPE (captures[1])))
   11698            0 :  && wi::leu_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   11699            0 :  && wi::leu_p (wi::to_wide (captures[4]) + wi::to_wide (captures[3]),
   11700            0 :  wi::to_wide (captures[2]) + isize)
   11701              : )
   11702              :                 {
   11703            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1991;
   11704            0 :                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1991;
   11705            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1991;
   11706            0 :                   {
   11707            0 :                     tree res_op0;
   11708            0 :                     res_op0 = captures[1];
   11709            0 :                     tree res_op1;
   11710            0 :                     res_op1 = captures[3];
   11711            0 :                     tree res_op2;
   11712            0 :                     res_op2 =  wide_int_to_tree (bitsizetype,
   11713            0 :  wi::to_wide (captures[4])
   11714            0 :  - wi::to_wide (captures[2]));
   11715            0 :                     tree _r;
   11716            0 :                     _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11717            0 :                     if (TREE_SIDE_EFFECTS (captures[0]))
   11718            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11719            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1103, __FILE__, __LINE__, true);
   11720            0 :                     return _r;
   11721              :                   }
   11722            0 : next_after_fail1991:;
   11723              :                 }
   11724              :               else
   11725              :                 {
   11726            0 :                   if (wi::eq_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   11727            0 :  && compare_tree_int (captures[3], isize) == 0
   11728              : )
   11729              :                     {
   11730            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1992;
   11731            0 :                       {
   11732            0 :                         tree res_op0;
   11733            0 :                         res_op0 = captures[1];
   11734            0 :                         tree _r;
   11735            0 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11736            0 :                         if (TREE_SIDE_EFFECTS (captures[0]))
   11737            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11738            0 :                         if (TREE_SIDE_EFFECTS (captures[2]))
   11739            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11740            0 :                         if (TREE_SIDE_EFFECTS (captures[3]))
   11741            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
   11742            0 :                         if (TREE_SIDE_EFFECTS (captures[4]))
   11743            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
   11744            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1104, __FILE__, __LINE__, true);
   11745            0 :                         return _r;
   11746              :                       }
   11747            0 : next_after_fail1992:;
   11748              :                     }
   11749              :                   else
   11750              :                     {
   11751            0 :                       if (wi::geu_p (wi::to_wide (captures[2]),
   11752            0 :  wi::to_wide (captures[4]) + wi::to_wide (captures[3]))
   11753            0 :  || wi::geu_p (wi::to_wide (captures[4]),
   11754            0 :  wi::to_wide (captures[2]) + isize)
   11755              : )
   11756              :                         {
   11757            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1993;
   11758            0 :                           {
   11759            0 :                             tree res_op0;
   11760            0 :                             res_op0 = captures[0];
   11761            0 :                             tree res_op1;
   11762            0 :                             res_op1 = captures[3];
   11763            0 :                             tree res_op2;
   11764            0 :                             res_op2 = captures[4];
   11765            0 :                             tree _r;
   11766            0 :                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11767            0 :                             if (TREE_SIDE_EFFECTS (captures[1]))
   11768            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11769            0 :                             if (TREE_SIDE_EFFECTS (captures[2]))
   11770            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11771            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1105, __FILE__, __LINE__, true);
   11772            0 :                             return _r;
   11773              :                           }
   11774            0 : next_after_fail1993:;
   11775              :                         }
   11776              :                     }
   11777              :                 }
   11778              :           }
   11779              :         }
   11780            0 :         break;
   11781              :       }
   11782              :     default:;
   11783              :     }
   11784              :   return NULL_TREE;
   11785              : }
   11786              : #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.