/* Generated automatically by the program `genmatch' from
   a IL pattern matching and simplification description.  */

#include "gimple-match-head.c"

bool
gimple_nop_convert (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  switch (TREE_CODE (t))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, t))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  {
/* #line 102 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 102 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 100, __FILE__, __LINE__);
			res_ops[0] = captures[0];
			return true;
		      }
		  }
	          break;
	        }
	      case VIEW_CONVERT_EXPR:
	        {
		  tree op0 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (op0) == SSA_NAME
		       || is_gimple_min_invariant (op0)))
		    {
		      op0 = do_valueize (valueize, op0);
		      {
/* #line 105 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 105 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (VECTOR_TYPE_P (type) && VECTOR_TYPE_P (TREE_TYPE (captures[0])) && known_eq (TYPE_VECTOR_SUBPARTS (type), TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[0]))) && tree_nop_conversion_p (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (captures[0]))))
			  {
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 103, __FILE__, __LINE__);
			    res_ops[0] = captures[0];
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  {
/* #line 110 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { t };
    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 110, __FILE__, __LINE__);
    res_ops[0] = captures[0];
    return true;
  }
  return false;
}

bool
gimple_power_of_two_cand (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  switch (TREE_CODE (t))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, t))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LSHIFT_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  switch (TREE_CODE (op0))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 556 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 556, __FILE__, __LINE__);
			  res_ops[0] = captures[0];
			  return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case INTEGER_CST:
      {
	{
/* #line 554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { t };
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 554, __FILE__, __LINE__);
	  res_ops[0] = captures[0];
	  return true;
	}
        break;
      }
    default:;
    }
  return false;
}

bool
gimple_negate_expr_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  switch (TREE_CODE (t))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, t))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  {
/* #line 1204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 1204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (!TYPE_OVERFLOW_SANITIZED (type))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1203, __FILE__, __LINE__);
			return true;
		      }
		  }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1215 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 1215 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if ((ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type)) || (FLOAT_TYPE_P (type) && !HONOR_SIGN_DEPENDENT_ROUNDING (type) && !HONOR_SIGNED_ZEROS (type)))
		      {
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1214, __FILE__, __LINE__);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case INTEGER_CST:
      {
	{
/* #line 1196 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
/* #line 1196 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if ((INTEGRAL_TYPE_P (type) && TYPE_UNSIGNED (type)) || (!TYPE_OVERFLOW_SANITIZED (type) && may_negate_without_overflow_p (t)))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1195, __FILE__, __LINE__);
	      return true;
	    }
	}
        break;
      }
    case FIXED_CST:
      {
	{
/* #line 1201 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1201, __FILE__, __LINE__);
	  return true;
	}
        break;
      }
    case REAL_CST:
      {
	{
/* #line 1207 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
/* #line 1207 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (t)))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1206, __FILE__, __LINE__);
	      return true;
	    }
	}
        break;
      }
    case VECTOR_CST:
      {
	{
/* #line 1212 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
/* #line 1212 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (FLOAT_TYPE_P (TREE_TYPE (type)) || TYPE_OVERFLOW_WRAPS (type))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1211, __FILE__, __LINE__);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

bool
gimple_truth_valued_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  {
/* #line 1328 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 1328 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1)
      {
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1327, __FILE__, __LINE__);
	return true;
      }
  }
  switch (TREE_CODE (t))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, t))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LT_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case LE_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case EQ_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case NE_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case GE_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case GT_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case UNORDERED_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case ORDERED_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case UNLT_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case UNLE_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case UNGT_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case UNGE_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case UNEQ_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case LTGT_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case TRUTH_AND_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case TRUTH_ANDIF_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case TRUTH_OR_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case TRUTH_ORIF_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case TRUTH_XOR_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  {
/* #line 1331 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1331, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      case TRUTH_NOT_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  {
/* #line 1333 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1333, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

bool
gimple_logical_inverted_value (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  switch (TREE_CODE (t))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, t))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case TRUTH_NOT_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  {
/* #line 1335 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1335, __FILE__, __LINE__);
		    res_ops[0] = captures[0];
		    return true;
		  }
	          break;
	        }
	      case BIT_NOT_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  if (gimple_truth_valued_p (op0, valueize))
		    {
		      {
/* #line 1337 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1337, __FILE__, __LINE__);
			res_ops[0] = captures[0];
			return true;
		      }
		    }
	          break;
	        }
	      case EQ_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 1339 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1339, __FILE__, __LINE__);
			res_ops[0] = captures[0];
			return true;
		      }
		    }
	          break;
	        }
	      case NE_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  if (gimple_truth_valued_p (op0, valueize))
		    {
		      if (integer_truep (op1))
			{
			  {
/* #line 1341 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1341, __FILE__, __LINE__);
			    res_ops[0] = captures[0];
			    return true;
			  }
		        }
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  if (gimple_truth_valued_p (op0, valueize))
		    {
		      if (integer_truep (op1))
			{
			  {
/* #line 1343 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1343, __FILE__, __LINE__);
			    res_ops[0] = captures[0];
			    return true;
			  }
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

bool
gimple_with_possible_nonzero_bits (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  switch (TREE_CODE (t))
    {
    case INTEGER_CST:
      {
	{
/* #line 1666 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { t };
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1666, __FILE__, __LINE__);
	  return true;
	}
        break;
      }
    case SSA_NAME:
      {
	{
/* #line 1669 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 1669 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0])))
	    {
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1668, __FILE__, __LINE__);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

bool
gimple_with_possible_nonzero_bits2 (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  switch (TREE_CODE (t))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, t))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  if (gimple_with_possible_nonzero_bits (op0, valueize))
		    {
		      {
/* #line 1673 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1673, __FILE__, __LINE__);
			res_ops[0] = captures[0];
			return true;
		      }
		    }
		  if (gimple_with_possible_nonzero_bits (op1, valueize))
		    {
		      {
/* #line 1673 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1673, __FILE__, __LINE__);
			res_ops[0] = captures[0];
			return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (gimple_with_possible_nonzero_bits (t, valueize))
  {
    {
/* #line 1671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { t };
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1671, __FILE__, __LINE__);
      res_ops[0] = captures[0];
      return true;
    }
  }
  return false;
}

bool
gimple_with_certain_nonzero_bits2 (tree t, tree *res_ops, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  switch (TREE_CODE (t))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, t))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_IOR_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  if (tree_swap_operands_p (op0, op1))
		    std::swap (op0, op1);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 1680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1680, __FILE__, __LINE__);
			  res_ops[0] = captures[0];
			  return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case INTEGER_CST:
      {
	{
/* #line 1678 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[1] ATTRIBUTE_UNUSED = { t };
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 1678, __FILE__, __LINE__);
	  res_ops[0] = captures[0];
	  return true;
	}
        break;
      }
    default:;
    }
  return false;
}

bool
gimple_compositional_complex (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  switch (TREE_CODE (t))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, t))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  switch (TREE_CODE (op0))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op0))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case COMPLEX_EXPR:
			        {
				  tree o20 = gimple_assign_rhs1 (def);
				  o20 = do_valueize (valueize, o20);
				  tree o21 = gimple_assign_rhs2 (def);
				  o21 = do_valueize (valueize, o21);
				  {
/* #line 2809 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 2809, __FILE__, __LINE__);
				    return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case COMPLEX_EXPR:
	        {
		  tree op0 = gimple_assign_rhs1 (def);
		  op0 = do_valueize (valueize, op0);
		  tree op1 = gimple_assign_rhs2 (def);
		  op1 = do_valueize (valueize, op1);
		  {
/* #line 2809 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 2809, __FILE__, __LINE__);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

bool
gimple_double_value_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  {
/* #line 4652 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 4652 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == double_type_node)
      {
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 4651, __FILE__, __LINE__);
	return true;
      }
  }
  return false;
}

bool
gimple_float_value_p (tree t, tree (*valueize)(tree) ATTRIBUTE_UNUSED)
{
  const tree type = TREE_TYPE (t);
  {
/* #line 4673 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { t };
/* #line 4673 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == float_type_node)
      {
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Matching expression %s:%d, %s:%d\n", "match.pd", 4672, __FILE__, __LINE__);
	return true;
      }
  }
  return false;
}

static bool
gimple_simplify_1 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3795 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3796, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[1];
      {
	tree ops1[2], res;
	ops1[0] = captures[2];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[3];
	  if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (ops2[0])
	      && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (ops2[0])))
	    {
	      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	    }
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_2 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_UNSIGNED (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 490, __FILE__, __LINE__);
      tree tem;
      tem =  build_zero_cst (type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_3 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1581 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1583, __FILE__, __LINE__);
      res_op->set_op (op, type, 2);
      res_op->ops[0] = captures[2];
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_4 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
    {
/* #line 1153 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (single_use (captures[4]) && single_use (captures[5]))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1154, __FILE__, __LINE__);
	  res_op->set_op (op, type, 2);
	  res_op->ops[0] = captures[0];
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[6];
	    if (type != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
/* #line 1155 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (single_use (captures[0]) && single_use (captures[1]))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1156, __FILE__, __LINE__);
	      res_op->set_op (op, type, 2);
	      {
		tree ops1[1], res;
		ops1[0] = captures[3];
		if (type != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] = captures[4];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_5 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1])) && (cmp != LTGT_EXPR || ! flag_trapping_math))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4100, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR ? false : true, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_6 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (COS), const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (TAN))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[0])
              || !single_use (captures[2])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4539, __FILE__, __LINE__);
      res_op->set_op (RDIV_EXPR, type, 2);
      res_op->ops[0] =  build_one_cst (type);
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	gimple_match_op tem_op (res_op->cond.any_else (), TAN, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_7 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2299, __FILE__, __LINE__);
      res_op->set_op (out, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_8 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 2314 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (wi::gt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (TREE_TYPE (captures[0]))))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2316, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (cmp == NE_EXPR, type);
      res_op->set_value (tem);
      return true;
    }
  else
    {
/* #line 2317 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (wi::lt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (TREE_TYPE (captures[0]))))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2319, __FILE__, __LINE__);
	  res_op->set_op (cmp, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] = captures[2];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_9 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1294, __FILE__, __LINE__);
  res_op->set_op (bitop, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_10 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4146 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (single_use (captures[0]) && ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_UNSIGNED (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4150, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[2];
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_11 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1349, __FILE__, __LINE__);
  tree tem;
  tem =  build_zero_cst (type);
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_12 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (shiftrotate))
{
  {
/* #line 2368 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = uniform_vector_p (captures[1]);
/* #line 2369 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (tem)
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2370, __FILE__, __LINE__);
	  res_op->set_op (shiftrotate, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] =  tem;
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_13 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (hypots), const combined_fn ARG_UNUSED (copysigns))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 661, __FILE__, __LINE__);
  res_op->set_op (hypots, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[2];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_14 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0])) == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1]))) && (DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0])) == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[2]))))
    {
      {
/* #line 3275 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree type1 = TREE_TYPE (captures[2]);
 if (TREE_CODE (captures[2]) == REAL_CST && !DECIMAL_FLOAT_TYPE_P (type1)) { REAL_VALUE_TYPE orig = TREE_REAL_CST (captures[2]);
 if (TYPE_PRECISION (type1) > TYPE_PRECISION (float_type_node) && exact_real_truncate (TYPE_MODE (float_type_node), &orig)) type1 = float_type_node;
 if (TYPE_PRECISION (type1) > TYPE_PRECISION (double_type_node) && exact_real_truncate (TYPE_MODE (double_type_node), &orig)) type1 = double_type_node;
 } tree newtype = (TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (type1) ? TREE_TYPE (captures[1]) : type1);
/* #line 3292 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (newtype))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3293, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      {
		tree ops1[1], res;
		ops1[0] = captures[1];
		if (newtype != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (newtype, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[0] = res;
	      }
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		if (newtype != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (newtype, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, newtype, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[1] = res;
	      }
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_15 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 2378 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])))
    {
      {
/* #line 2379 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 int width = ceil_log2 (element_precision (TREE_TYPE (captures[0])));
 int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
/* #line 2383 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if ((get_nonzero_bits (captures[1]) & wi::mask (width, false, prec)) == 0)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2384, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3618, __FILE__, __LINE__);
  tree tem;
  tem = captures[1];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_17 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && integer_pow2p (captures[3]) && tree_int_cst_sgn (captures[3]) > 0)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 565, __FILE__, __LINE__);
      res_op->set_op (BIT_AND_EXPR, type, 2);
      res_op->ops[0] = captures[0];
      {
	tree ops1[1], res;
	{
	  tree ops2[2], res;
	  ops2[0] = captures[2];
	  ops2[1] =  build_int_cst (TREE_TYPE (captures[2]), 1);
	  gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	  gimple_resimplify2 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[0] = res;
	}
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_18 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1381 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1383, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_19 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3244, __FILE__, __LINE__);
  res_op->set_op (UNORDERED_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[0];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_20 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 3111 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (VECTOR_TYPE_P (type) && known_eq (TYPE_VECTOR_SUBPARTS (type), TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3]))) && (TYPE_MODE (TREE_TYPE (type)) == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3])))))
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[1])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3116, __FILE__, __LINE__);
      res_op->set_op (MINUS_EXPR, type, 2);
      res_op->ops[0] = captures[0];
      {
	tree ops1[1], res;
	{
	  tree ops2[3], res;
	  ops2[0] = captures[2];
	  ops2[0] = unshare_expr (ops2[0]);
	  {
	    tree ops3[1], res;
	    ops3[0] = captures[3];
	    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops3[0]), ops3[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    ops2[1] = res;
	  }
	  ops2[2] = captures[4];
	  gimple_match_op tem_op (res_op->cond.any_else (), VEC_COND_EXPR, TREE_TYPE (ops2[1]), ops2[0], ops2[1], ops2[2]);
	  gimple_resimplify3 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[0] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_21 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (popcount))
{
/* #line 5166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (wi::bit_and (tree_nonzero_bits (captures[1]), tree_nonzero_bits (captures[3])) == 0)
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[0])
              || !single_use (captures[2])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5167, __FILE__, __LINE__);
      res_op->set_op (popcount, type, 1);
      {
	tree ops1[2], res;
	ops1[0] = captures[1];
	ops1[1] = captures[3];
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_22 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1397 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1398, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	ops1[1] = captures[1];
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_23 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (maxmin))
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])
          || !single_use (captures[2])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2290, __FILE__, __LINE__);
  res_op->set_op (BIT_NOT_EXPR, type, 1);
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[3];
    gimple_match_op tem_op (res_op->cond.any_else (), maxmin, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_24 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1104 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1106, __FILE__, __LINE__);
      res_op->set_op (BIT_XOR_EXPR, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[0] = res;
      }
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_25 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3621, __FILE__, __LINE__);
  tree tem;
  tem = captures[1];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_26 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1359, __FILE__, __LINE__);
  tree tem;
  tem =  constant_boolean_node (op == NE_EXPR ? true : false, type);
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_27 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (test1), const enum tree_code ARG_UNUSED (test2))
{
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3639, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (false, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_28 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])) && wi::to_wide (captures[2]) != 0 && single_use (captures[0]))
    {
      {
/* #line 4135 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[1]));
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4136, __FILE__, __LINE__);
	  res_op->set_op (out, type, 2);
	  res_op->ops[0] = captures[1];
	  res_op->ops[1] =  wide_int_to_tree (TREE_TYPE (captures[1]), wi::max_value (prec, UNSIGNED) - wi::to_wide (captures[2]));
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_29 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (rotate))
{
/* #line 2554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if ((element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3]))) && (element_precision (type) <= element_precision (TREE_TYPE (captures[2])) || !TYPE_UNSIGNED (TREE_TYPE (captures[2]))))
    {
      {
/* #line 2559 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree rotate_type = TREE_TYPE (captures[2]);
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[1])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2561, __FILE__, __LINE__);
	  res_op->set_op (NOP_EXPR, type, 1);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      if (rotate_type != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (rotate_type, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, rotate_type, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    gimple_match_op tem_op (res_op->cond.any_else (), rotate, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_30 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (div))
{
/* #line 292 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!integer_zerop (captures[1]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 293, __FILE__, __LINE__);
      tree tem;
      tem = captures[0];
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_31 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (fns))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4469, __FILE__, __LINE__);
  res_op->set_op (fns, type, 1);
  res_op->ops[0] = captures[0];
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1439 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])) && (TREE_INT_CST_LOW (captures[1]) & 1) != 0)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1442, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_33 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TREE_INT_CST_LOW (captures[1]) & 1)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1661, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (cmp == NE_EXPR, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_34 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (plusminus))
{
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type) && (!FLOAT_TYPE_P (type) || flag_associative_math))
    {
/* #line 2155 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!ALL_FRACT_MODE_P (TYPE_MODE (type)))
	{
/* #line 2167 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if ((!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type) || (INTEGRAL_TYPE_P (type) && tree_expr_nonzero_p (captures[1]) && expr_not_equal_to (captures[1], wi::minus_one (TYPE_PRECISION (type))))) && single_use (captures[0]))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2173, __FILE__, __LINE__);
	      res_op->set_op (MULT_EXPR, type, 2);
	      {
		tree ops1[2], res;
		ops1[0] = captures[2];
		ops1[1] =  build_one_cst (type);
		gimple_match_op tem_op (res_op->cond.any_else (), plusminus, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] = captures[1];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_35 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 3510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[1])) && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1])))
    {
      {
/* #line 3512 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree itype = TREE_TYPE (captures[0]);
 format_helper fmt (REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[1]))));
 const REAL_VALUE_TYPE *cst = TREE_REAL_CST_PTR (captures[1]);
 bool exception_p = real_isnan (cst) && (cst->signalling || (cmp != EQ_EXPR && cmp != NE_EXPR));
/* #line 3527 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (fmt.can_represent_integral_type_p (itype) && ! exception_p)
	    {
	      {
/* #line 3528 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 signop isign = TYPE_SIGN (itype);
 REAL_VALUE_TYPE imin, imax;
 real_from_integer (&imin, fmt, wi::min_value (itype), isign);
 real_from_integer (&imax, fmt, wi::max_value (itype), isign);
 REAL_VALUE_TYPE icst;
 if (cmp == GT_EXPR || cmp == GE_EXPR) real_ceil (&icst, fmt, cst);
 else if (cmp == LT_EXPR || cmp == LE_EXPR) real_floor (&icst, fmt, cst);
 else real_trunc (&icst, fmt, cst);
 bool cst_int_p = !real_isnan (cst) && real_identical (&icst, cst);
 bool overflow_p = false;
 wide_int icst_val = real_to_integer (&icst, &overflow_p, TYPE_PRECISION (itype));
/* #line 3551 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (real_compare (LT_EXPR, cst, &imin))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3552, __FILE__, __LINE__);
		      tree tem;
		      tem =  constant_boolean_node (cmp == GT_EXPR || cmp == GE_EXPR || cmp == NE_EXPR, type);
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 3554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (real_compare (GT_EXPR, cst, &imax))
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3555, __FILE__, __LINE__);
			  tree tem;
			  tem =  constant_boolean_node (cmp == LT_EXPR || cmp == LE_EXPR || cmp == NE_EXPR, type);
			  res_op->set_value (tem);
			  return true;
			}
		      else
			{
/* #line 3558 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cst_int_p)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3559, __FILE__, __LINE__);
			      res_op->set_op (cmp, type, 2);
			      res_op->ops[0] = captures[0];
 gcc_assert (!overflow_p);
			      res_op->ops[1] =  wide_int_to_tree (itype, icst_val);
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			  else
			    {
/* #line 3565 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == EQ_EXPR || cmp == NE_EXPR)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3566, __FILE__, __LINE__);
				  tree tem;
				  tem =  constant_boolean_node (cmp == NE_EXPR, type);
				  res_op->set_value (tem);
				  return true;
				}
			      else
				{
				  {
/* #line 3568 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 gcc_checking_assert (!overflow_p);
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3572, __FILE__, __LINE__);
				      res_op->set_op (icmp, type, 2);
				      res_op->ops[0] = captures[0];
				      res_op->ops[1] =  wide_int_to_tree (itype, icst_val);
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				  }
				}
			    }
			}
		    }
	      }
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_36 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 252, __FILE__, __LINE__);
      res_op->set_op (ABS_EXPR, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_37 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (bswap))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2857, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_38 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  {
/* #line 874 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree pmop[2];
 tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[3], op, captures[1], ERROR_MARK, NULL_TREE, NULL_TREE, captures[2], ERROR_MARK, NULL_TREE, NULL_TREE, pmop);
/* #line 879 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (utype)
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 880, __FILE__, __LINE__);
	  res_op->set_op (NOP_EXPR, type, 1);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[2], res;
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[0];
		if (utype != TREE_TYPE (ops3[0])
		    && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops3[0];
		ops2[0] = res;
	      }
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[1];
		if (utype != TREE_TYPE (ops3[0])
		    && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops3[0];
		ops2[1] = res;
	      }
	      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	      gimple_resimplify2 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      if (utype != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_39 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2188, __FILE__, __LINE__);
  tree tem;
  tem = captures[1];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_40 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 270, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_41 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (sq), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && ! flag_errno_math)
    {
/* #line 3473 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (! HONOR_NANS (captures[0]))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3474, __FILE__, __LINE__);
	  res_op->set_op (cmp, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] = captures[1];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_42 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type))
    {
      {
/* #line 2452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 unsigned int shiftc = tree_to_uhwi (captures[4]);
 unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
 unsigned HOST_WIDE_INT newmask, zerobits = 0;
 tree shift_type = TREE_TYPE (captures[2]);
 unsigned int prec;
 if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
 else if (shift == RSHIFT_EXPR && type_has_mode_precision_p (shift_type)) { prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
 tree arg00 = captures[3];
 if (captures[2] != captures[3] && TYPE_UNSIGNED (TREE_TYPE (captures[3]))) { tree inner_type = TREE_TYPE (captures[3]);
 if (type_has_mode_precision_p (inner_type) && TYPE_PRECISION (inner_type) < prec) { prec = TYPE_PRECISION (inner_type);
 if (shiftc < prec) shift_type = inner_type;
 } } zerobits = HOST_WIDE_INT_M1U;
 if (shiftc < prec) { zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
 zerobits <<= prec - shiftc;
 } if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && prec == TYPE_PRECISION (TREE_TYPE (captures[2]))) { if ((mask & zerobits) == 0) shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
 else zerobits = 0;
 } }/* #line 2506 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if ((mask & zerobits) == mask)
	    {
	      gimple_seq *lseq = seq;
	      if (lseq
	          && (!single_use (captures[0])
	              || !single_use (captures[1])))
	        lseq = NULL;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2507, __FILE__, __LINE__);
	      tree tem;
	      tem =  build_int_cst (type, 0);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
	      {
/* #line 2508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 newmask = mask | zerobits;
/* #line 2509 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (newmask != mask && (newmask & (newmask + 1)) == 0)
		    {
		      {
/* #line 2510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 for (prec = BITS_PER_UNIT;
 prec < HOST_BITS_PER_WIDE_INT;
 prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break;
/* #line 2519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
			    {
			      {
/* #line 2521 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 2523 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (!tree_int_cst_equal (newmaskt, captures[5]))
				    {
/* #line 2524 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (shift_type != TREE_TYPE (captures[2]))
					{
					  gimple_seq *lseq = seq;
					  if (lseq
					      && (!single_use (captures[0])
					          || !single_use (captures[1])))
					    lseq = NULL;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2525, __FILE__, __LINE__);
					  res_op->set_op (BIT_AND_EXPR, type, 2);
					  {
					    tree ops1[1], res;
					    {
					      tree ops2[2], res;
					      {
						tree ops3[1], res;
						ops3[0] = captures[2];
						if (shift_type != TREE_TYPE (ops3[0])
						    && !useless_type_conversion_p (shift_type, TREE_TYPE (ops3[0])))
						  {
						    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, ops3[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						  }
						else
						  res = ops3[0];
						ops2[0] = res;
					      }
					      ops2[1] = captures[4];
					      gimple_match_op tem_op (res_op->cond.any_else (), shift, shift_type, ops2[0], ops2[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      ops1[0] = res;
					    }
					    if (type != TREE_TYPE (ops1[0])
					        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops1[0];
					    res_op->ops[0] = res;
					  }
					  res_op->ops[1] =  newmaskt;
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
					  gimple_seq *lseq = seq;
					  if (lseq
					      && (!single_use (captures[0])
					          || !single_use (captures[1])))
					    lseq = NULL;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2526, __FILE__, __LINE__);
					  res_op->set_op (BIT_AND_EXPR, type, 2);
					  res_op->ops[0] = captures[0];
					  res_op->ops[1] =  newmaskt;
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				    }
			      }
			    }
		      }
		    }
	      }
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_43 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])
          || !single_use (captures[3])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1409, __FILE__, __LINE__);
  res_op->set_op (BIT_XOR_EXPR, type, 2);
  {
    tree ops1[2], res;
    {
      tree ops2[2], res;
      ops2[0] = captures[1];
      ops2[1] = captures[4];
      gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
      gimple_resimplify2 (lseq, &tem_op, valueize);
      res = maybe_push_res_to_seq (&tem_op, lseq);
      if (!res) return false;
      ops1[0] = res;
    }
    ops1[1] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_44 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (FMAX_ALL))
{
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_finite_math_only)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2274, __FILE__, __LINE__);
      res_op->set_op (MAX_EXPR, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_45 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 975, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_46 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4176 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    {
      {
/* #line 4177 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4178, __FILE__, __LINE__);
	  res_op->set_op (out, type, 2);
	  {
	    tree ops1[1], res;
	    {
	      tree ops2[2], res;
	      ops2[0] = captures[2];
	      ops2[1] = captures[1];
	      gimple_match_op tem_op (res_op->cond.any_else (), CFN_MUL_OVERFLOW, cpx, ops2[0], ops2[1]);
	      gimple_resimplify2 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  res_op->ops[1] =  build_zero_cst (t);
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_47 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1422, __FILE__, __LINE__);
  res_op->set_op (COND_EXPR, type, 3);
  {
    tree ops1[2], res;
    ops1[0] = captures[0];
    ops1[1] = captures[1];
    gimple_match_op tem_op (res_op->cond.any_else (), cmp, boolean_type_node, ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  res_op->ops[1] = captures[2];
  res_op->ops[2] =  build_zero_cst (type);
  gimple_resimplify3 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_48 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (mod))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 500, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_49 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (mod))
{
/* #line 514 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      {
/* #line 515 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 516, __FILE__, __LINE__);
	  res_op->set_op (cmp, type, 2);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[0];
	      if (utype != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[1];
	      if (utype != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), mod, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[2];
	    if (utype != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (utype, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_50 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (shiftrotate))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2359, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_51 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 532 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (type) && !TYPE_UNSIGNED (type) && !TYPE_OVERFLOW_TRAPS (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && (expr_not_equal_to (captures[0], wi::to_wide (TYPE_MIN_VALUE (type))) || expr_not_equal_to (captures[1], wi::minus_one (TYPE_PRECISION (TREE_TYPE (captures[1]))))))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 542, __FILE__, __LINE__);
      res_op->set_op (TRUNC_MOD_EXPR, type, 2);
      res_op->ops[0] = captures[0];
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_52 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (div))
{
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 311, __FILE__, __LINE__);
      res_op->set_op (COND_EXPR, type, 3);
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	ops1[1] =  build_zero_cst (type);
	gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, boolean_type_node, ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] =  build_minus_one_cst (type);
      res_op->ops[2] =  build_one_cst (type);
      gimple_resimplify3 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_53 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (POW))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[1])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4579, __FILE__, __LINE__);
      res_op->set_op (MULT_EXPR, type, 2);
      res_op->ops[0] = captures[0];
      {
	tree ops1[2], res;
	ops1[0] = captures[2];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[3];
	  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  gimple_resimplify1 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[1] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), POW, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_54 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
    {
/* #line 1153 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (single_use (captures[4]) && single_use (captures[5]))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1154, __FILE__, __LINE__);
	  res_op->set_op (op, type, 2);
	  res_op->ops[0] = captures[0];
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[6];
	    if (type != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
/* #line 1155 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (single_use (captures[0]) && single_use (captures[1]))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1156, __FILE__, __LINE__);
	      res_op->set_op (op, type, 2);
	      {
		tree ops1[1], res;
		ops1[0] = captures[3];
		if (type != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] = captures[4];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_55 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (floors), const combined_fn ARG_UNUSED (truncs))
{
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4648, __FILE__, __LINE__);
      res_op->set_op (truncs, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_56 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (rep), const combined_fn ARG_UNUSED (popcount))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5173, __FILE__, __LINE__);
  res_op->set_op (rep, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[0]));
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_57 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 373 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 376, __FILE__, __LINE__);
      tree tem;
      tem =  build_minus_one_cst (type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_58 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5143, __FILE__, __LINE__);
      res_op->set_op (CFN_FMS, type, 3);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      res_op->ops[2] = captures[2];
      gimple_resimplify3 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_59 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2423, __FILE__, __LINE__);
  res_op->set_op (icmp, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[0]));
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_60 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3])) != 0)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3779, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (cmp == NE_EXPR, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_61 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1090 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[4])) && (wi::to_wide (captures[2]) & wi::to_wide (captures[5])) == 0)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1093, __FILE__, __LINE__);
      res_op->set_op (BIT_IOR_EXPR, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[0] = res;
      }
      {
	tree ops1[1], res;
	ops1[0] = captures[3];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_62 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (tans), const combined_fn ARG_UNUSED (atans))
{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4400, __FILE__, __LINE__);
      tree tem;
      tem = captures[0];
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_63 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[3]);
/* #line 5233 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (element_precision (type) == element_precision (op_type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5234, __FILE__, __LINE__);
	  res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	  {
	    tree ops1[4], res;
	    ops1[0] = captures[0];
	    if (COMPARISON_CLASS_P (ops1[0]))
	      {
	        if (!seq) return false;
	        ops1[0] = gimple_build (seq, TREE_CODE (ops1[0]), TREE_TYPE (ops1[0]), TREE_OPERAND (ops1[0], 0), TREE_OPERAND (ops1[0], 1));
	      }
	    ops1[1] = captures[1];
	    ops1[2] = captures[2];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[4];
	      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[3] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2], ops1[3]);
	    gimple_resimplify4 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (sq), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && ! flag_errno_math)
    {
/* #line 3390 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1])))
	{
/* #line 3393 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (cmp == EQ_EXPR || cmp == LT_EXPR || cmp == LE_EXPR)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3394, __FILE__, __LINE__);
	      tree tem;
	      tem =  constant_boolean_node (false, type);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
/* #line 3397 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (cmp == NE_EXPR || !HONOR_NANS (captures[0]))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3398, __FILE__, __LINE__);
		  tree tem;
		  tem =  constant_boolean_node (true, type);
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3400, __FILE__, __LINE__);
		  res_op->set_op (GE_EXPR, type, 2);
		  res_op->ops[0] = captures[0];
		  res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	    }
	}
      else
	{
/* #line 3401 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (real_equal (TREE_REAL_CST_PTR (captures[1]), &dconst0))
	    {
/* #line 3404 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (cmp == LT_EXPR)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3405, __FILE__, __LINE__);
		  tree tem;
		  tem =  constant_boolean_node (false, type);
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 3407 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (cmp == GE_EXPR && !HONOR_NANS (captures[0]))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3408, __FILE__, __LINE__);
		      tree tem;
		      tem =  constant_boolean_node (true, type);
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 3410 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == LE_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3411, __FILE__, __LINE__);
			  res_op->set_op (EQ_EXPR, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] = captures[1];
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3419, __FILE__, __LINE__);
			  res_op->set_op (cmp, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] = captures[1];
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		    }
		}
	    }
	  else
	    {
/* #line 3420 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (cmp == GT_EXPR || cmp == GE_EXPR)
		{
		  {
/* #line 3421 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 REAL_VALUE_TYPE c2;
 real_arithmetic (&c2, MULT_EXPR, &TREE_REAL_CST (captures[1]), &TREE_REAL_CST (captures[1]));
 real_convert (&c2, TYPE_MODE (TREE_TYPE (captures[0])), &c2);
/* #line 3428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (REAL_VALUE_ISINF (c2))
			{
/* #line 3430 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (HONOR_INFINITIES (captures[0]))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3431, __FILE__, __LINE__);
			      res_op->set_op (EQ_EXPR, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), c2);
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			  else
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3432, __FILE__, __LINE__);
			      tree tem;
			      tem =  constant_boolean_node (false, type);
			      res_op->set_value (tem);
			      return true;
			    }
			}
		      else
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3434, __FILE__, __LINE__);
			  res_op->set_op (cmp, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), c2);
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		  }
		}
	      else
		{
/* #line 3435 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (cmp == LT_EXPR || cmp == LE_EXPR)
		    {
		      {
/* #line 3436 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 REAL_VALUE_TYPE c2;
 real_arithmetic (&c2, MULT_EXPR, &TREE_REAL_CST (captures[1]), &TREE_REAL_CST (captures[1]));
 real_convert (&c2, TYPE_MODE (TREE_TYPE (captures[0])), &c2);
/* #line 3443 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (REAL_VALUE_ISINF (c2))
			    {
/* #line 3447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (! HONOR_NANS (captures[0]) && ! HONOR_INFINITIES (captures[0]))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3448, __FILE__, __LINE__);
				  tree tem;
				  tem =  constant_boolean_node (true, type);
				  res_op->set_value (tem);
				  return true;
				}
			      else
				{
/* #line 3451 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (! HONOR_NANS (captures[0]))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3452, __FILE__, __LINE__);
				      res_op->set_op (NE_EXPR, type, 2);
				      res_op->ops[0] = captures[0];
				      res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), c2);
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
/* #line 3455 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (! HONOR_INFINITIES (captures[0]))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3456, __FILE__, __LINE__);
					  res_op->set_op (GE_EXPR, type, 2);
					  res_op->ops[0] = captures[0];
					  res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 3458 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (0)
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3459, __FILE__, __LINE__);
					      res_op->set_op (TRUTH_ANDIF_EXPR, type, 2);
					      {
						tree ops1[2], res;
						ops1[0] = captures[0];
						ops1[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
						gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, ops1[0], ops1[1]);
						gimple_resimplify2 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
						res_op->ops[0] = res;
					      }
					      {
						tree ops1[2], res;
						ops1[0] = captures[0];
						ops1[1] =  build_real (TREE_TYPE (captures[0]), c2);
						gimple_match_op tem_op (res_op->cond.any_else (), NE_EXPR, type, ops1[0], ops1[1]);
						gimple_resimplify2 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
						res_op->ops[1] = res;
					      }
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					}
				    }
				}
			    }
			  else
			    {
/* #line 3463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (! HONOR_NANS (captures[0]))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3464, __FILE__, __LINE__);
				  res_op->set_op (cmp, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), c2);
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			      else
				{
/* #line 3466 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (0)
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3467, __FILE__, __LINE__);
				      res_op->set_op (TRUTH_ANDIF_EXPR, type, 2);
				      {
					tree ops1[2], res;
					ops1[0] = captures[0];
					ops1[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
					gimple_match_op tem_op (res_op->cond.any_else (), GE_EXPR, type, ops1[0], ops1[1]);
					gimple_resimplify2 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					res_op->ops[0] = res;
				      }
				      {
					tree ops1[2], res;
					ops1[0] = captures[0];
					ops1[1] =  build_real (TREE_TYPE (captures[0]), c2);
					gimple_match_op tem_op (res_op->cond.any_else (), cmp, type, ops1[0], ops1[1]);
					gimple_resimplify2 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					res_op->ops[1] = res;
				      }
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				}
			    }
		      }
		    }
		}
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_65 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 899 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 900, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (cmp == LT_EXPR, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_66 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1414 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[3])))
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[1])
              || !single_use (captures[2])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1416, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[2], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[3];
	  gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  gimple_resimplify1 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[0] = res;
	}
	ops1[1] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_67 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (eqcmp))
{
/* #line 3655 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])))
    {
      {
/* #line 3656 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree ty = TREE_TYPE (captures[0]);
 unsigned prec = TYPE_PRECISION (ty);
 wide_int mask = wi::to_wide (captures[2], prec);
 wide_int rhs = wi::to_wide (captures[3], prec);
 signop sgn = TYPE_SIGN (ty);
/* #line 3664 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if ((mask & (mask + 1)) == 0 && wi::gt_p (rhs, 0, sgn) && (rhs & (rhs + 1)) == 0 && wi::ge_p (mask, rhs, sgn))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3666, __FILE__, __LINE__);
	      res_op->set_op (eqcmp, type, 2);
	      {
		tree ops1[2], res;
		ops1[0] = captures[1];
		ops1[1] =  wide_int_to_tree (ty, mask - rhs);
		gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] =  build_zero_cst (ty);
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_68 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (mod))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 485, __FILE__, __LINE__);
  tree tem;
  tem =  build_zero_cst (type);
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_69 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1225, __FILE__, __LINE__);
      res_op->set_op (MULT_EXPR, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[0] = res;
      }
      {
	tree ops1[1], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[1];
	  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  gimple_resimplify1 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[0] = res;
	}
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_70 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3225 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (! FLOAT_TYPE_P (TREE_TYPE (captures[0])) || ! HONOR_NANS (captures[0]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3227, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (true, type);
      res_op->set_value (tem);
      return true;
    }
  else
    {
/* #line 3228 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (cmp != EQ_EXPR)
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3229, __FILE__, __LINE__);
	  res_op->set_op (EQ_EXPR, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] = captures[0];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_71 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3618, __FILE__, __LINE__);
  tree tem;
  tem = captures[1];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_72 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5115, __FILE__, __LINE__);
      res_op->set_op (CFN_FNMS, type, 3);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      res_op->ops[2] = captures[2];
      gimple_resimplify3 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_73 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (TAN), const combined_fn ARG_UNUSED (COS))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
/* #line 4544 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (! HONOR_NANS (captures[1]) && ! HONOR_INFINITIES (captures[1]))
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[2])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4546, __FILE__, __LINE__);
	  res_op->set_op (COS, type, 1);
	  res_op->ops[0] = captures[1];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_74 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (COS), const combined_fn ARG_UNUSED (TAN))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[0])
              || !single_use (captures[2])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4534, __FILE__, __LINE__);
      res_op->set_op (TAN, type, 1);
      res_op->ops[0] = captures[1];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_75 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 820, __FILE__, __LINE__);
  tree tem;
  tem = captures[2];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_76 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (op))
{
  {
/* #line 852 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree pmop[2];
 tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[5], op, captures[1], bitop, captures[2], captures[3], captures[4], ERROR_MARK, NULL_TREE, NULL_TREE, pmop);
/* #line 857 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (utype)
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[1])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 858, __FILE__, __LINE__);
	  res_op->set_op (NOP_EXPR, type, 1);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[2], res;
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[0];
		if (utype != TREE_TYPE (ops3[0])
		    && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops3[0];
		ops2[0] = res;
	      }
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[1];
		if (utype != TREE_TYPE (ops3[0])
		    && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops3[0];
		ops2[1] = res;
	      }
	      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	      gimple_resimplify2 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[5];
	      if (utype != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_77 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (POW))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4484, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_78 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (optimize && canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4710, __FILE__, __LINE__);
      res_op->set_op (tos, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_79 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (pows), const combined_fn ARG_UNUSED (copysigns))
{
  {
/* #line 645 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 HOST_WIDE_INT n;
/* #line 646 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (real_isinteger (&TREE_REAL_CST (captures[2]), &n) && (n & 1) == 0)
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 647, __FILE__, __LINE__);
	  res_op->set_op (pows, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] = captures[2];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_80 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1570, __FILE__, __LINE__);
      res_op->set_op (op, type, 2);
      res_op->ops[0] = captures[1];
      res_op->ops[1] = captures[3];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_81 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 780, __FILE__, __LINE__);
  res_op->set_op (BIT_XOR_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_82 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5101, __FILE__, __LINE__);
      res_op->set_op (CFN_FNMA, type, 3);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      res_op->ops[2] = captures[2];
      gimple_resimplify3 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_83 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))) && (CONSTANT_CLASS_P (captures[2]) || (single_use (captures[1]) && single_use (captures[0]))) && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[3])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1623, __FILE__, __LINE__);
      res_op->set_op (op, type, 2);
      res_op->ops[0] = captures[2];
      res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[2]));
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_84 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 264, __FILE__, __LINE__);
      res_op->set_op (COPYSIGN_ALL, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_85 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 3210 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (integer_zerop (captures[2]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3211, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[2];
      res_op->ops[1] = captures[3];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  else
    {
/* #line 3212 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) && single_use (captures[0]))
	{
/* #line 3216 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (tree_int_cst_sgn (captures[2]) < 0)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3217, __FILE__, __LINE__);
	      res_op->set_op (scmp, type, 2);
	      res_op->ops[0] = captures[1];
	      res_op->ops[1] = captures[3];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3218, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      res_op->ops[0] = captures[1];
	      res_op->ops[1] = captures[3];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_86 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 2541 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && (element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3]))))
    {
      {
/* #line 2545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree shift_type = TREE_TYPE (captures[2]);
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[1])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2547, __FILE__, __LINE__);
	  res_op->set_op (NOP_EXPR, type, 1);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      if (shift_type != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (shift_type, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_87 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (shiftrotate))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2362, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_88 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 757 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[2])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 760, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[2];
	  if (TREE_TYPE (ops1[0]) != TREE_TYPE (ops2[0])
	      && !useless_type_conversion_p (TREE_TYPE (ops1[0]), TREE_TYPE (ops2[0])))
	    {
	      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	    }
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_89 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 4835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && type_has_mode_precision_p (TREE_TYPE (captures[2])) && type_has_mode_precision_p (TREE_TYPE (captures[4])) && type_has_mode_precision_p (type) && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2])) && types_match (captures[2], type) && (types_match (captures[2], captures[4]) || TREE_CODE (captures[4]) == INTEGER_CST))
    {
/* #line 4853 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4854, __FILE__, __LINE__);
	  res_op->set_op (op, type, 2);
	  res_op->ops[0] = captures[2];
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[4];
	    if (type != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
	  {
/* #line 4855 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
	      gimple_seq *lseq = seq;
	      if (lseq
	          && (!single_use (captures[0])))
	        lseq = NULL;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4856, __FILE__, __LINE__);
	      res_op->set_op (NOP_EXPR, type, 1);
	      {
		tree ops1[2], res;
		{
		  tree ops2[1], res;
		  ops2[0] = captures[2];
		  if (utype != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[4];
		  if (utype != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	  }
	}
    }
  return false;
}

static bool
gimple_simplify_90 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[0])) && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0])))
    {
      {
/* #line 3483 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 format_helper fmt (REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[0]))));
 tree type1 = TREE_TYPE (captures[1]);
 bool type1_signed_p = TYPE_SIGN (type1) == SIGNED;
 tree type2 = TREE_TYPE (captures[2]);
 bool type2_signed_p = TYPE_SIGN (type2) == SIGNED;
/* #line 3491 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (fmt.can_represent_integral_type_p (type1) && fmt.can_represent_integral_type_p (type2))
	    {
/* #line 3493 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (cmp == ORDERED_EXPR || cmp == UNORDERED_EXPR)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3494, __FILE__, __LINE__);
		  tree tem;
		  tem =  constant_boolean_node (cmp == ORDERED_EXPR, type);
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 3495 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (TYPE_PRECISION (type1) > TYPE_PRECISION (type2) && type1_signed_p >= type2_signed_p)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3497, __FILE__, __LINE__);
		      res_op->set_op (icmp, type, 2);
		      res_op->ops[0] = captures[1];
		      {
			tree ops1[1], res;
			ops1[0] = captures[2];
			if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (ops1[0])
			    && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (ops1[0])))
			  {
			    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), ops1[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			  }
			else
			  res = ops1[0];
			res_op->ops[1] = res;
		      }
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		  else
		    {
/* #line 3498 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (TYPE_PRECISION (type1) < TYPE_PRECISION (type2) && type1_signed_p <= type2_signed_p)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3500, __FILE__, __LINE__);
			  res_op->set_op (icmp, type, 2);
			  {
			    tree ops1[1], res;
			    ops1[0] = captures[1];
			    if (type2 != TREE_TYPE (ops1[0])
			        && !useless_type_conversion_p (type2, TREE_TYPE (ops1[0])))
			      {
				gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type2, ops1[0]);
				gimple_resimplify1 (lseq, &tem_op, valueize);
				res = maybe_push_res_to_seq (&tem_op, lseq);
				if (!res) return false;
			      }
			    else
			      res = ops1[0];
			    res_op->ops[0] = res;
			  }
			  res_op->ops[1] = captures[2];
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
/* #line 3501 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (TYPE_PRECISION (type1) == TYPE_PRECISION (type2) && type1_signed_p == type2_signed_p)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3503, __FILE__, __LINE__);
			      res_op->set_op (icmp, type, 2);
			      res_op->ops[0] = captures[1];
			      res_op->ops[1] = captures[2];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		    }
		}
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_91 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5149, __FILE__, __LINE__);
      res_op->set_op (CFN_FMA, type, 3);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      res_op->ops[2] = captures[2];
      gimple_resimplify3 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_92 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[6]);
/* #line 5252 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (inverse_conditions_p (captures[0], captures[2]) && element_precision (type) == element_precision (op_type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5254, __FILE__, __LINE__);
	  res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	  {
	    tree ops1[5], res;
	    ops1[0] = captures[2];
	    ops1[1] = captures[3];
	    ops1[2] = captures[4];
	    ops1[3] = captures[5];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[1];
	      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[4] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2], ops1[3], ops1[4]);
	    gimple_resimplify5 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_93 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 4867 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && type_has_mode_precision_p (TREE_TYPE (captures[2])) && type_has_mode_precision_p (TREE_TYPE (captures[4])) && type_has_mode_precision_p (type) && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2])) && types_match (captures[2], captures[4]) && (tree_int_cst_min_precision (captures[5], TYPE_SIGN (TREE_TYPE (captures[2]))) <= TYPE_PRECISION (TREE_TYPE (captures[2]))) && (wi::to_wide (captures[5]) & wi::mask (TYPE_PRECISION (TREE_TYPE (captures[2])), true, TYPE_PRECISION (type))) == 0)
    {
/* #line 4886 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
	{
	  {
/* #line 4887 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree ntype = TREE_TYPE (captures[2]);
	      gimple_seq *lseq = seq;
	      if (lseq
	          && (!single_use (captures[0])))
	        lseq = NULL;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4888, __FILE__, __LINE__);
	      res_op->set_op (NOP_EXPR, type, 1);
	      {
		tree ops1[2], res;
		{
		  tree ops2[2], res;
		  ops2[0] = captures[2];
		  ops2[1] = captures[4];
		  gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[5];
		  if (ntype != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (ntype, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, ntype, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	  }
	}
      else
	{
	  {
/* #line 4889 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
	      gimple_seq *lseq = seq;
	      if (lseq
	          && (!single_use (captures[0])))
	        lseq = NULL;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4890, __FILE__, __LINE__);
	      res_op->set_op (NOP_EXPR, type, 1);
	      {
		tree ops1[2], res;
		{
		  tree ops2[2], res;
		  {
		    tree ops3[1], res;
		    ops3[0] = captures[2];
		    if (utype != TREE_TYPE (ops3[0])
		        && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
		      {
			gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
		      }
		    else
		      res = ops3[0];
		    ops2[0] = res;
		  }
		  {
		    tree ops3[1], res;
		    ops3[0] = captures[4];
		    if (utype != TREE_TYPE (ops3[0])
		        && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
		      {
			gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
		      }
		    else
		      res = ops3[0];
		    ops2[1] = res;
		  }
		  gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[5];
		  if (utype != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	  }
	}
    }
  return false;
}

static bool
gimple_simplify_94 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 547 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 548, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	ops1[1] = captures[1];
	gimple_match_op tem_op (res_op->cond.any_else (), TRUNC_MOD_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_95 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1162, __FILE__, __LINE__);
      res_op->set_op (BIT_XOR_EXPR, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[0] = res;
      }
      {
	tree ops1[1], res;
	ops1[0] = captures[2];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_96 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (single_use (captures[0]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3199, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[1];
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_97 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && !(targetm.have_canonicalize_funcptr_for_compare () && ((POINTER_TYPE_P (TREE_TYPE (captures[1])) && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1])))) || (POINTER_TYPE_P (TREE_TYPE (captures[3])) && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[3])))))) && single_use (captures[0]))
    {
/* #line 3707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0])) && (TREE_CODE (captures[3]) == INTEGER_CST || captures[2] != captures[3]) && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[0])) || cmp == NE_EXPR || cmp == EQ_EXPR) && !POINTER_TYPE_P (TREE_TYPE (captures[1])))
	{
/* #line 3717 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TREE_CODE (captures[2]) == INTEGER_CST)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3718, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      res_op->ops[0] = captures[1];
	      res_op->ops[1] =  force_fit_type (TREE_TYPE (captures[1]), wi::to_widest (captures[2]), 0, TREE_OVERFLOW (captures[2]));
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3720, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      res_op->ops[0] = captures[1];
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[1] = res;
	      }
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
      else
	{
/* #line 3722 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1])))
	    {
/* #line 3724 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if ((cmp == EQ_EXPR || cmp == NE_EXPR || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1])) || (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1])))) && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])) || ((TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[3]))) && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[3])))) || (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && int_fits_type_p (captures[3], TREE_TYPE (captures[1])))))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3736, __FILE__, __LINE__);
		  res_op->set_op (cmp, type, 2);
		  res_op->ops[0] = captures[1];
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[3];
		    if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (ops1[0])
		        && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (ops1[0])))
		      {
			gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), ops1[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
		      }
		    else
		      res = ops1[0];
		    res_op->ops[1] = res;
		  }
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	      else
		{
/* #line 3737 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && !int_fits_type_p (captures[3], TREE_TYPE (captures[1])))
		    {
		      {
/* #line 3740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
 tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
 bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[3]));
 bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[3], min));
/* #line 3747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (above || below)
			    {
/* #line 3748 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == EQ_EXPR || cmp == NE_EXPR)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3749, __FILE__, __LINE__);
				  tree tem;
				  tem =  constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
				  res_op->set_value (tem);
				  return true;
				}
			      else
				{
/* #line 3750 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (cmp == LT_EXPR || cmp == LE_EXPR)
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3751, __FILE__, __LINE__);
				      tree tem;
				      tem =  constant_boolean_node (above ? true : false, type);
				      res_op->set_value (tem);
				      return true;
				    }
				  else
				    {
/* #line 3752 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (cmp == GT_EXPR || cmp == GE_EXPR)
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3753, __FILE__, __LINE__);
					  tree tem;
					  tem =  constant_boolean_node (above ? false : true, type);
					  res_op->set_value (tem);
					  return true;
					}
				    }
				}
			    }
		      }
		    }
		}
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_98 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3800 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_single_nonzero_warnv_p (captures[0], NULL))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3801, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (cmp == NE_EXPR, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_99 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1540, __FILE__, __LINE__);
      res_op->set_op (op, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_100 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
    {
/* #line 1153 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (single_use (captures[4]) && single_use (captures[5]))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1154, __FILE__, __LINE__);
	  res_op->set_op (op, type, 2);
	  res_op->ops[0] = captures[0];
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[6];
	    if (type != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
/* #line 1155 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (single_use (captures[0]) && single_use (captures[1]))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1156, __FILE__, __LINE__);
	      res_op->set_op (op, type, 2);
	      {
		tree ops1[1], res;
		ops1[0] = captures[3];
		if (type != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] = captures[4];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_101 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1556, __FILE__, __LINE__);
      res_op->set_op (op, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_102 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 794, __FILE__, __LINE__);
  tree tem;
  tem = captures[2];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_103 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (sinhs), const combined_fn ARG_UNUSED (atanhs), const combined_fn ARG_UNUSED (sqrts))
{
/* #line 4441 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!flag_errno_math)
    {
      {
/* #line 4448 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree t_one = build_one_cst (type);
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4449, __FILE__, __LINE__);
	  res_op->set_op (RDIV_EXPR, type, 2);
	  res_op->ops[0] = captures[1];
	  {
	    tree ops1[1], res;
	    {
	      tree ops2[2], res;
	      {
		tree ops3[2], res;
		ops3[0] =  t_one;
		ops3[1] = captures[1];
		gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		ops2[0] = res;
	      }
	      {
		tree ops3[2], res;
		ops3[0] =  t_one;
		ops3[1] = captures[1];
		gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		ops2[1] = res;
	      }
	      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	      gimple_resimplify2 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), sqrts, TREE_TYPE (ops1[0]), ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_104 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 3848 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (integer_pow2p (captures[1]) && !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      {
/* #line 3850 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 int shift = element_precision (captures[0]) - wi::exact_log2 (wi::to_wide (captures[1])) - 1;
/* #line 3853 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (shift >= 0)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3854, __FILE__, __LINE__);
	      res_op->set_op (BIT_AND_EXPR, type, 2);
	      {
		tree ops1[1], res;
		{
		  tree ops2[2], res;
		  ops2[0] = captures[0];
		  ops2[1] =  build_int_cst (integer_type_node, shift);
		  gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  ops1[0] = res;
		}
		if (type != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] = captures[1];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3859, __FILE__, __LINE__);
	      res_op->set_op (BIT_AND_EXPR, type, 2);
	      {
		tree ops1[1], res;
		ops1[0] = captures[0];
		if (type != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] = captures[1];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_105 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5121, __FILE__, __LINE__);
      res_op->set_op (CFN_FNMA, type, 3);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      res_op->ops[2] = captures[2];
      gimple_resimplify3 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_106 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3254 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (single_use (captures[0]) && single_use (captures[2]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3255, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[3];
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_107 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (minmax), const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (comb))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2326, __FILE__, __LINE__);
  res_op->set_op (comb, type, 2);
  {
    tree ops1[2], res;
    ops1[0] = captures[0];
    ops1[1] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), cmp, type, ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), cmp, type, ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[1] = res;
  }
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_108 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ocmp))
{
/* #line 1650 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TREE_CODE (TREE_TYPE (captures[0])) != COMPLEX_TYPE && (VECTOR_TYPE_P (type) || !VECTOR_TYPE_P (TREE_TYPE (captures[0]))))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1654, __FILE__, __LINE__);
      res_op->set_op (ocmp, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_109 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  {
/* #line 2399 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 unsigned int prec = element_precision (type);
/* #line 2400 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (wi::ge_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1]))) && wi::lt_p (wi::to_wide (captures[1]), prec, TYPE_SIGN (TREE_TYPE (captures[1]))) && wi::ge_p (wi::to_wide (captures[2]), 0, TYPE_SIGN (TREE_TYPE (captures[2]))) && wi::lt_p (wi::to_wide (captures[2]), prec, TYPE_SIGN (TREE_TYPE (captures[2]))))
	{
	  {
/* #line 2404 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 unsigned int low = (tree_to_uhwi (captures[1]) + tree_to_uhwi (captures[2]));
/* #line 2408 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (low >= prec)
		{
/* #line 2409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (op == LROTATE_EXPR || op == RROTATE_EXPR)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2410, __FILE__, __LINE__);
		      res_op->set_op (op, type, 2);
		      res_op->ops[0] = captures[0];
		      res_op->ops[1] =  build_int_cst (TREE_TYPE (captures[1]), low % prec);
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		  else
		    {
/* #line 2411 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (TYPE_UNSIGNED (type) || op == LSHIFT_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2412, __FILE__, __LINE__);
			  tree tem;
			  tem =  build_zero_cst (type);
			  res_op->set_value (tem);
			  return true;
			}
		      else
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2413, __FILE__, __LINE__);
			  res_op->set_op (op, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] =  build_int_cst (TREE_TYPE (captures[1]), prec - 1);
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		    }
		}
	      else
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2414, __FILE__, __LINE__);
		  res_op->set_op (op, type, 2);
		  res_op->ops[0] = captures[0];
		  res_op->ops[1] =  build_int_cst (TREE_TYPE (captures[1]), low);
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	  }
	}
  }
  return false;
}

static bool
gimple_simplify_110 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (logic), const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (ext))
{
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TREE_CODE (captures[1]) != INTEGER_CST)
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[0])
              || !single_use (captures[3])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4902, __FILE__, __LINE__);
      res_op->set_op (op, type, 2);
      res_op->ops[0] = captures[1];
      {
	tree ops1[2], res;
	ops1[0] = captures[2];
	ops1[1] = captures[4];
	gimple_match_op tem_op (res_op->cond.any_else (), ext, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_111 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 2192 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TREE_CODE (type) != COMPLEX_TYPE && (! ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_UNDEFINED (type)))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2195, __FILE__, __LINE__);
      res_op->set_op (ABS_EXPR, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_112 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
  {
/* #line 2431 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 int cand = wi::ctz (wi::to_wide (captures[2])) - wi::ctz (wi::to_wide (captures[0]));
/* #line 2432 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (cand < 0 || (!integer_zerop (captures[2]) && wi::lshift (wi::to_wide (captures[0]), cand) != wi::to_wide (captures[2])))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2435, __FILE__, __LINE__);
	  tree tem;
	  tem =  constant_boolean_node (cmp == NE_EXPR, type);
	  res_op->set_value (tem);
	  return true;
	}
      else
	{
/* #line 2436 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!integer_zerop (captures[2]) && wi::lshift (wi::to_wide (captures[0]), cand) == wi::to_wide (captures[2]))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2438, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      res_op->ops[0] = captures[1];
	      res_op->ops[1] =  build_int_cst (TREE_TYPE (captures[1]), cand);
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
  }
  return false;
}

static bool
gimple_simplify_113 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (POW))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[0])
              || !single_use (captures[3])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4563, __FILE__, __LINE__);
      res_op->set_op (POW, type, 2);
      {
	tree ops1[2], res;
	ops1[0] = captures[1];
	ops1[1] = captures[4];
	gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_114 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 3817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (integer_pow2p (captures[2]))
    {
      {
/* #line 3818 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 int shift = (wi::exact_log2 (wi::to_wide (captures[2])) - wi::exact_log2 (wi::to_wide (captures[1])));
/* #line 3822 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (shift > 0)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3823, __FILE__, __LINE__);
	      res_op->set_op (BIT_AND_EXPR, type, 2);
	      {
		tree ops1[2], res;
		{
		  tree ops2[1], res;
		  ops2[0] = captures[0];
		  if (type != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (type, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[0] = res;
		}
		ops1[1] =  build_int_cst (integer_type_node, shift);
		gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] = captures[2];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3825, __FILE__, __LINE__);
	      res_op->set_op (BIT_AND_EXPR, type, 2);
	      {
		tree ops1[1], res;
		{
		  tree ops2[2], res;
		  ops2[0] = captures[0];
		  ops2[1] =  build_int_cst (integer_type_node, -shift);
		  gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  ops1[0] = res;
		}
		if (type != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] = captures[2];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_115 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3594 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1]))))
    {
      {
/* #line 3595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 wi::overflow_type ovf;
 wide_int prod = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[1]), TYPE_SIGN (TREE_TYPE (captures[1])), &ovf);
/* #line 3601 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (ovf)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3602, __FILE__, __LINE__);
	      tree tem;
	      tem =  constant_boolean_node (wi::lt_p (wi::to_wide (captures[2]), 0, TYPE_SIGN (TREE_TYPE (captures[2]))) != (cmp == LT_EXPR || cmp == LE_EXPR), type);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3605, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      res_op->ops[0] = captures[0];
	      res_op->ops[1] =  wide_int_to_tree (TREE_TYPE (captures[0]), prod);
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_116 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (acmp))
{
  {
/* #line 3148 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree cst = uniform_integer_cst_p (captures[1]);
/* #line 3149 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (tree_int_cst_sgn (cst) == 1)
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3150, __FILE__, __LINE__);
	  res_op->set_op (acmp, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] =  build_uniform_cst (TREE_TYPE (captures[1]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1));
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_117 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop))
{
  {
/* #line 886 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree pmop[2];
 tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[4], NEGATE_EXPR, captures[1], bitop, captures[2], captures[3], NULL_TREE, ERROR_MARK, NULL_TREE, NULL_TREE, pmop);
/* #line 891 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (utype)
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[1])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 892, __FILE__, __LINE__);
	  res_op->set_op (NOP_EXPR, type, 1);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[0];
		if (utype != TREE_TYPE (ops3[0])
		    && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops3[0];
		ops2[0] = res;
	      }
	      gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[4];
	      if (utype != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_118 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1141, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_119 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (uncond_op), const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[2]);
/* #line 5205 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op), op_type) && element_precision (type) == element_precision (op_type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5207, __FILE__, __LINE__);
	  res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	  {
	    tree ops1[4], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[0];
	      if (COMPARISON_CLASS_P (ops2[0]))
	        {
	          if (!seq) return false;
	          ops2[0] = gimple_build (seq, TREE_CODE (ops2[0]), TREE_TYPE (ops2[0]), TREE_OPERAND (ops2[0], 0), TREE_OPERAND (ops2[0], 1));
	        }
	      gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    ops1[1] = captures[3];
	    ops1[2] = captures[4];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[1];
	      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[3] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2], ops1[3]);
	    gimple_resimplify4 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_120 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1369 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1371, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	ops1[1] =  build_each_one_cst (TREE_TYPE (captures[0]));
	gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_121 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (uncond_op), const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5220 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[2]);
/* #line 5221 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op), op_type) && element_precision (type) == element_precision (op_type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5223, __FILE__, __LINE__);
	  res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	  {
	    tree ops1[5], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[0];
	      if (COMPARISON_CLASS_P (ops2[0]))
	        {
	          if (!seq) return false;
	          ops2[0] = gimple_build (seq, TREE_CODE (ops2[0]), TREE_TYPE (ops2[0]), TREE_OPERAND (ops2[0], 0), TREE_OPERAND (ops2[0], 1));
	        }
	      gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    ops1[1] = captures[3];
	    ops1[2] = captures[4];
	    ops1[3] = captures[5];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[1];
	      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[4] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2], ops1[3], ops1[4]);
	    gimple_resimplify5 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_122 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (plusminus))
{
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type) && (!FLOAT_TYPE_P (type) || flag_associative_math))
    {
/* #line 2145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type) || (INTEGRAL_TYPE_P (type) && tree_expr_nonzero_p (captures[1]) && expr_not_equal_to (captures[1], wi::minus_one (TYPE_PRECISION (type))))) && (single_use (captures[0]) || single_use (captures[3])))
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[3])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2153, __FILE__, __LINE__);
	  res_op->set_op (MULT_EXPR, type, 2);
	  {
	    tree ops1[2], res;
	    ops1[0] = captures[2];
	    ops1[1] = captures[4];
	    gimple_match_op tem_op (res_op->cond.any_else (), plusminus, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  res_op->ops[1] = captures[1];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_123 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (FLOAT_TYPE_P (TREE_TYPE (captures[0])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3677, __FILE__, __LINE__);
      res_op->set_op (scmp, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_124 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type) && wi::multiple_of_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (type)))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 508, __FILE__, __LINE__);
      tree tem;
      tem =  build_zero_cst (type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_125 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (rotate))
{
/* #line 2554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if ((element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3]))) && (element_precision (type) <= element_precision (TREE_TYPE (captures[2])) || !TYPE_UNSIGNED (TREE_TYPE (captures[2]))))
    {
      {
/* #line 2559 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree rotate_type = TREE_TYPE (captures[2]);
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[1])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2561, __FILE__, __LINE__);
	  res_op->set_op (NOP_EXPR, type, 1);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      if (rotate_type != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (rotate_type, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, rotate_type, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    gimple_match_op tem_op (res_op->cond.any_else (), rotate, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_126 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (div))
{
/* #line 297 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_UNSIGNED (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 298, __FILE__, __LINE__);
      res_op->set_op (NEGATE_EXPR, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_127 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (shiftrotate))
{
  {
/* #line 2368 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = uniform_vector_p (captures[1]);
/* #line 2369 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (tem)
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2370, __FILE__, __LINE__);
	  res_op->set_op (shiftrotate, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] =  tem;
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_128 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop))
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[1])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 970, __FILE__, __LINE__);
  res_op->set_op (bitop, type, 2);
  res_op->ops[0] = captures[0];
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    gimple_resimplify1 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[1] = res;
  }
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_129 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3621, __FILE__, __LINE__);
  tree tem;
  tem = captures[1];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_130 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop))
{
/* #line 1078 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1080, __FILE__, __LINE__);
      res_op->set_op (BIT_NOT_EXPR, type, 1);
      {
	tree ops1[2], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[0];
	  if (type != TREE_TYPE (ops2[0])
	      && !useless_type_conversion_p (type, TREE_TYPE (ops2[0])))
	    {
	      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	    }
	  else
	    res = ops2[0];
	  ops1[0] = res;
	}
	{
	  tree ops2[1], res;
	  ops2[0] = captures[1];
	  if (type != TREE_TYPE (ops2[0])
	      && !useless_type_conversion_p (type, TREE_TYPE (ops2[0])))
	    {
	      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	    }
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), rop, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_131 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (HYPOT))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4629, __FILE__, __LINE__);
      res_op->set_op (MULT_EXPR, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] =  build_real_truncate (type, dconst_sqrt2 ());
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_132 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
  {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 off0, off1;
 tree base0 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[1], 0), &off0);
 tree base1 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[2], 0), &off1);
 if (base0 && TREE_CODE (base0) == MEM_REF) { off0 += mem_ref_offset (base0).force_shwi ();
 base0 = TREE_OPERAND (base0, 0);
 } if (base1 && TREE_CODE (base1) == MEM_REF) { off1 += mem_ref_offset (base1).force_shwi ();
 base1 = TREE_OPERAND (base1, 0);
 }/* #line 3884 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (base0 && base1)
	{
	  {
/* #line 3885 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 int equal = 2;
 if (0 && ((VAR_P (base0) && DECL_HAS_VALUE_EXPR_P (base0)) || (VAR_P (base1) && DECL_HAS_VALUE_EXPR_P (base1)))) ;
 else if (decl_in_symtab_p (base0) && decl_in_symtab_p (base1)) equal = symtab_node::get_create (base0) ->equal_address_to (symtab_node::get_create (base1));
 else if ((DECL_P (base0) || TREE_CODE (base0) == SSA_NAME || TREE_CODE (base0) == STRING_CST) && (DECL_P (base1) || TREE_CODE (base1) == SSA_NAME || TREE_CODE (base1) == STRING_CST)) equal = (base0 == base1);
 if (equal == 0) { if (!DECL_P (base0) || !DECL_P (base1)) equal = 2;
 else if (cmp != EQ_EXPR && cmp != NE_EXPR) equal = 2;
 else if (!INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))) ;
 else if (is_global_var (base0) != is_global_var (base1)) ;
 else { tree sz0 = DECL_SIZE_UNIT (base0);
 tree sz1 = DECL_SIZE_UNIT (base1);
 if (!tree_fits_poly_int64_p (sz0) || !tree_fits_poly_int64_p (sz1)) equal = 2;
 else { poly_int64 size0 = tree_to_poly_int64 (sz0);
 poly_int64 size1 = tree_to_poly_int64 (sz1);
 if (maybe_eq (off0, 0) && maybe_eq (off1, size1)) equal = 2;
 else if (maybe_eq (off1, 0) && maybe_eq (off0, size0)) equal = 2;
 if (equal == 2 && known_eq (off0, off1) && (known_ne (off0, 0) || (known_ne (size0, 0) && known_ne (size1, 0)))) equal = 0;
 } } }/* #line 3953 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (equal == 1 && (cmp == EQ_EXPR || cmp == NE_EXPR || known_eq (off0, off1) || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && (DECL_P (base0) || TREE_CODE (base0) == STRING_CST))))
		{
/* #line 3962 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1)))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3963, __FILE__, __LINE__);
		      tree tem;
		      tem =  constant_boolean_node (known_eq (off0, off1), type);
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 3964 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1)))
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3965, __FILE__, __LINE__);
			  tree tem;
			  tem =  constant_boolean_node (known_ne (off0, off1), type);
			  res_op->set_value (tem);
			  return true;
			}
		      else
			{
/* #line 3966 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1)))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3967, __FILE__, __LINE__);
			      tree tem;
			      tem =  constant_boolean_node (known_lt (off0, off1), type);
			      res_op->set_value (tem);
			      return true;
			    }
			  else
			    {
/* #line 3968 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1)))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3969, __FILE__, __LINE__);
				  tree tem;
				  tem =  constant_boolean_node (known_le (off0, off1), type);
				  res_op->set_value (tem);
				  return true;
				}
			      else
				{
/* #line 3970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1)))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3971, __FILE__, __LINE__);
				      tree tem;
				      tem =  constant_boolean_node (known_ge (off0, off1), type);
				      res_op->set_value (tem);
				      return true;
				    }
				  else
				    {
/* #line 3972 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1)))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3973, __FILE__, __LINE__);
					  tree tem;
					  tem =  constant_boolean_node (known_gt (off0, off1), type);
					  res_op->set_value (tem);
					  return true;
					}
				    }
				}
			    }
			}
		    }
		}
	      else
		{
/* #line 3974 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (equal == 0)
		    {
/* #line 3976 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == EQ_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3977, __FILE__, __LINE__);
			  tree tem;
			  tem =  constant_boolean_node (false, type);
			  res_op->set_value (tem);
			  return true;
			}
		      else
			{
/* #line 3978 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == NE_EXPR)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3979, __FILE__, __LINE__);
			      tree tem;
			      tem =  constant_boolean_node (true, type);
			      res_op->set_value (tem);
			      return true;
			    }
			}
		    }
		}
	  }
	}
  }
  return false;
}

static bool
gimple_simplify_133 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 2305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (wi::lt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (TREE_TYPE (captures[0]))))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2307, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (cmp == NE_EXPR, type);
      res_op->set_value (tem);
      return true;
    }
  else
    {
/* #line 2308 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (wi::gt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (TREE_TYPE (captures[0]))))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2310, __FILE__, __LINE__);
	  res_op->set_op (cmp, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] = captures[2];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_134 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4489, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_135 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4806, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_136 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[3])) && tree_nop_conversion_p (type, TREE_TYPE (captures[6])))
    {
/* #line 1153 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (single_use (captures[4]) && single_use (captures[5]))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1154, __FILE__, __LINE__);
	  res_op->set_op (op, type, 2);
	  res_op->ops[0] = captures[0];
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[6];
	    if (type != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
/* #line 1155 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (single_use (captures[0]) && single_use (captures[1]))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1156, __FILE__, __LINE__);
	      res_op->set_op (op, type, 2);
	      {
		tree ops1[1], res;
		ops1[0] = captures[3];
		if (type != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] = captures[4];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_137 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || ((op == EQ_EXPR || op == NE_EXPR) && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))) && (CONSTANT_CLASS_P (captures[2]) || single_use (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1641, __FILE__, __LINE__);
      res_op->set_op (op, type, 2);
      res_op->ops[0] = captures[2];
      res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[2]));
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_138 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1429 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) && tree_expr_nonzero_p (captures[1]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1432, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_139 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5107, __FILE__, __LINE__);
      res_op->set_op (CFN_FNMS, type, 3);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      res_op->ops[2] = captures[2];
      gimple_resimplify3 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_140 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (FMIN_ALL))
{
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_finite_math_only)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2271, __FILE__, __LINE__);
      res_op->set_op (MIN_EXPR, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_141 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (hypots), const combined_fn ARG_UNUSED (copysigns))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 665, __FILE__, __LINE__);
  res_op->set_op (hypots, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_142 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (copysigns))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 679, __FILE__, __LINE__);
  res_op->set_op (copysigns, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[2];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_143 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4168, __FILE__, __LINE__);
      res_op->set_op (out, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[1]));
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_144 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1687 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (wi::bit_and_not (wi::to_wide (captures[1]), get_nonzero_bits (captures[0])) != 0)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1688, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (cmp == NE_EXPR, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_145 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (copysigns))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 685, __FILE__, __LINE__);
  res_op->set_op (MULT_EXPR, type, 2);
  res_op->ops[0] = captures[1];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_146 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree from_type = TREE_TYPE (captures[0]);
 tree c1_type = TREE_TYPE (captures[1]), c2_type = TREE_TYPE (captures[2]);
 enum tree_code code = ERROR_MARK;
 if (INTEGRAL_TYPE_P (from_type) && int_fits_type_p (captures[2], from_type) && (types_match (c1_type, from_type) || (TYPE_PRECISION (c1_type) > TYPE_PRECISION (from_type) && (TYPE_UNSIGNED (from_type) || TYPE_SIGN (c1_type) == TYPE_SIGN (from_type)))) && (types_match (c2_type, from_type) || (TYPE_PRECISION (c2_type) > TYPE_PRECISION (from_type) && (TYPE_UNSIGNED (from_type) || TYPE_SIGN (c2_type) == TYPE_SIGN (from_type))))) { if (cmp != EQ_EXPR) { if (wi::to_widest (captures[1]) == (wi::to_widest (captures[2]) - 1)) { if (cmp == LE_EXPR) code = LT_EXPR;
 if (cmp == GT_EXPR) code = GE_EXPR;
 } if (wi::to_widest (captures[1]) == (wi::to_widest (captures[2]) + 1)) { if (cmp == LT_EXPR) code = LE_EXPR;
 if (cmp == GE_EXPR) code = GT_EXPR;
 } if (code != ERROR_MARK || wi::to_widest (captures[2]) == wi::to_widest (captures[1])) { if (cmp == LT_EXPR || cmp == LE_EXPR) code = MIN_EXPR;
 if (cmp == GT_EXPR || cmp == GE_EXPR) code = MAX_EXPR;
 } } else if (int_fits_type_p (captures[1], from_type)) code = EQ_EXPR;
 }/* #line 2962 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (code == MAX_EXPR)
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2963, __FILE__, __LINE__);
	  res_op->set_op (NOP_EXPR, type, 1);
	  {
	    tree ops1[2], res;
	    ops1[0] = captures[0];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      if (TREE_TYPE (ops1[0]) != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (TREE_TYPE (ops1[0]), TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
/* #line 2964 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (code == MIN_EXPR)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2965, __FILE__, __LINE__);
	      res_op->set_op (NOP_EXPR, type, 1);
	      {
		tree ops1[2], res;
		ops1[0] = captures[0];
		{
		  tree ops2[1], res;
		  ops2[0] = captures[2];
		  if (TREE_TYPE (ops1[0]) != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (TREE_TYPE (ops1[0]), TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
/* #line 2966 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (code == EQ_EXPR)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2967, __FILE__, __LINE__);
		  res_op->set_op (NOP_EXPR, type, 1);
		  {
		    tree ops1[3], res;
		    {
		      tree ops2[2], res;
		      ops2[0] = captures[0];
		      {
			tree ops3[1], res;
			ops3[0] = captures[1];
			if (TREE_TYPE (ops2[0]) != TREE_TYPE (ops3[0])
			    && !useless_type_conversion_p (TREE_TYPE (ops2[0]), TREE_TYPE (ops3[0])))
			  {
			    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (ops2[0]), ops3[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			  }
			else
			  res = ops3[0];
			ops2[1] = res;
		      }
		      gimple_match_op tem_op (res_op->cond.any_else (), EQ_EXPR, boolean_type_node, ops2[0], ops2[1]);
		      gimple_resimplify2 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      ops1[0] = res;
		    }
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[1];
		      if (from_type != TREE_TYPE (ops2[0])
		          && !useless_type_conversion_p (from_type, TREE_TYPE (ops2[0])))
			{
			  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, from_type, ops2[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
		        }
		      else
		        res = ops2[0];
		      ops1[1] = res;
		    }
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      if (from_type != TREE_TYPE (ops2[0])
		          && !useless_type_conversion_p (from_type, TREE_TYPE (ops2[0])))
			{
			  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, from_type, ops2[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
		        }
		      else
		        res = ops2[0];
		      ops1[2] = res;
		    }
		    gimple_match_op tem_op (res_op->cond.any_else (), COND_EXPR, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2]);
		    gimple_resimplify3 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    res_op->ops[0] = res;
		  }
		  gimple_resimplify1 (lseq, res_op, valueize);
		  return true;
		}
	    }
	}
  }
  return false;
}

static bool
gimple_simplify_147 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4504, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_148 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1111 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1112, __FILE__, __LINE__);
      res_op->set_op (BIT_XOR_EXPR, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[0] = res;
      }
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_149 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 3835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && type_has_mode_precision_p (TREE_TYPE (captures[1])) && element_precision (captures[0]) >= element_precision (captures[1]) && wi::only_sign_bit_p (wi::to_wide (captures[2]), element_precision (captures[1])))
    {
      {
/* #line 3839 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[1]));
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3840, __FILE__, __LINE__);
	  res_op->set_op (ncmp, type, 2);
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[1];
	    if (stype != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (stype, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, stype, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[0] = res;
	  }
	  res_op->ops[1] =  build_zero_cst (stype);
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_150 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (HYPOT))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4479, __FILE__, __LINE__);
  res_op->set_op (ABS_EXPR, type, 1);
  res_op->ops[0] = captures[0];
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_151 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp), const enum tree_code ARG_UNUSED (ncmp))
{
  {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 enum tree_code ic = invert_tree_comparison (cmp, HONOR_NANS (captures[0]));
/* #line 3184 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (ic == icmp)
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3185, __FILE__, __LINE__);
	  res_op->set_op (icmp, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] = captures[1];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
/* #line 3186 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (ic == ncmp)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3187, __FILE__, __LINE__);
	      res_op->set_op (ncmp, type, 2);
	      res_op->ops[0] = captures[0];
	      res_op->ops[1] = captures[1];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
  }
  return false;
}

static bool
gimple_simplify_152 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4494, __FILE__, __LINE__);
  res_op->set_op (ABS_EXPR, type, 1);
  res_op->ops[0] = captures[0];
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_153 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (single_use (captures[0]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3199, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[1];
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_154 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (logs), const combined_fn ARG_UNUSED (pows))
{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4328, __FILE__, __LINE__);
      res_op->set_op (MULT_EXPR, type, 2);
      res_op->ops[0] = captures[1];
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), logs, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_155 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1414 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[3])))
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[1])
              || !single_use (captures[2])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1416, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[2], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[3];
	  gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  gimple_resimplify1 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[0] = res;
	}
	ops1[1] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_156 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[5]);
/* #line 5238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (inverse_conditions_p (captures[0], captures[2]) && element_precision (type) == element_precision (op_type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5240, __FILE__, __LINE__);
	  res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	  {
	    tree ops1[4], res;
	    ops1[0] = captures[2];
	    ops1[1] = captures[3];
	    ops1[2] = captures[4];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[1];
	      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[3] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2], ops1[3]);
	    gimple_resimplify4 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_157 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 3262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (single_use (captures[0]) && (TREE_CODE (captures[2]) == INTEGER_CST || TREE_CODE (captures[2]) == VECTOR_CST))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3264, __FILE__, __LINE__);
      res_op->set_op (scmp, type, 2);
      res_op->ops[0] = captures[1];
      {
	tree ops1[1], res;
	ops1[0] = captures[2];
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_158 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (coss), const combined_fn ARG_UNUSED (copysigns))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 638, __FILE__, __LINE__);
  res_op->set_op (coss, type, 1);
  res_op->ops[0] = captures[0];
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_159 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (sins), const combined_fn ARG_UNUSED (atans), const combined_fn ARG_UNUSED (sqrts), const combined_fn ARG_UNUSED (copysigns))
{
  {
/* #line 4409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 REAL_VALUE_TYPE r_cst;
 build_sinatan_real (&r_cst, type);
 tree t_cst = build_real (type, r_cst);
 tree t_one = build_one_cst (type);
/* #line 4416 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (SCALAR_FLOAT_TYPE_P (type))
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4417, __FILE__, __LINE__);
	  res_op->set_op (COND_EXPR, type, 3);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[1];
	      gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    ops1[1] =  t_cst;
	    gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, boolean_type_node, ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  {
	    tree ops1[2], res;
	    ops1[0] = captures[1];
	    {
	      tree ops2[1], res;
	      {
		tree ops3[2], res;
		{
		  tree ops4[2], res;
		  ops4[0] = captures[1];
		  ops4[1] = captures[1];
		  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops4[0]), ops4[0], ops4[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  ops3[0] = res;
		}
		ops3[1] =  t_one;
		gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		ops2[0] = res;
	      }
	      gimple_match_op tem_op (res_op->cond.any_else (), sqrts, TREE_TYPE (ops2[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[1] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[1] = res;
	  }
	  {
	    tree ops1[2], res;
	    ops1[0] =  t_one;
	    ops1[1] = captures[1];
	    gimple_match_op tem_op (res_op->cond.any_else (), copysigns, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[2] = res;
	  }
	  gimple_resimplify3 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_160 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type))
    {
      {
/* #line 2452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 unsigned int shiftc = tree_to_uhwi (captures[4]);
 unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
 unsigned HOST_WIDE_INT newmask, zerobits = 0;
 tree shift_type = TREE_TYPE (captures[2]);
 unsigned int prec;
 if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
 else if (shift == RSHIFT_EXPR && type_has_mode_precision_p (shift_type)) { prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
 tree arg00 = captures[3];
 if (captures[2] != captures[3] && TYPE_UNSIGNED (TREE_TYPE (captures[3]))) { tree inner_type = TREE_TYPE (captures[3]);
 if (type_has_mode_precision_p (inner_type) && TYPE_PRECISION (inner_type) < prec) { prec = TYPE_PRECISION (inner_type);
 if (shiftc < prec) shift_type = inner_type;
 } } zerobits = HOST_WIDE_INT_M1U;
 if (shiftc < prec) { zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
 zerobits <<= prec - shiftc;
 } if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && prec == TYPE_PRECISION (TREE_TYPE (captures[2]))) { if ((mask & zerobits) == 0) shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
 else zerobits = 0;
 } }/* #line 2506 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if ((mask & zerobits) == mask)
	    {
	      gimple_seq *lseq = seq;
	      if (lseq
	          && (!single_use (captures[0])
	              || !single_use (captures[1])))
	        lseq = NULL;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2507, __FILE__, __LINE__);
	      tree tem;
	      tem =  build_int_cst (type, 0);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
	      {
/* #line 2508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 newmask = mask | zerobits;
/* #line 2509 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (newmask != mask && (newmask & (newmask + 1)) == 0)
		    {
		      {
/* #line 2510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 for (prec = BITS_PER_UNIT;
 prec < HOST_BITS_PER_WIDE_INT;
 prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break;
/* #line 2519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
			    {
			      {
/* #line 2521 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 2523 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (!tree_int_cst_equal (newmaskt, captures[5]))
				    {
/* #line 2524 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (shift_type != TREE_TYPE (captures[2]))
					{
					  gimple_seq *lseq = seq;
					  if (lseq
					      && (!single_use (captures[0])
					          || !single_use (captures[1])))
					    lseq = NULL;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2525, __FILE__, __LINE__);
					  res_op->set_op (BIT_AND_EXPR, type, 2);
					  {
					    tree ops1[1], res;
					    {
					      tree ops2[2], res;
					      {
						tree ops3[1], res;
						ops3[0] = captures[2];
						if (shift_type != TREE_TYPE (ops3[0])
						    && !useless_type_conversion_p (shift_type, TREE_TYPE (ops3[0])))
						  {
						    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, ops3[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						  }
						else
						  res = ops3[0];
						ops2[0] = res;
					      }
					      ops2[1] = captures[4];
					      gimple_match_op tem_op (res_op->cond.any_else (), shift, shift_type, ops2[0], ops2[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      ops1[0] = res;
					    }
					    if (type != TREE_TYPE (ops1[0])
					        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops1[0];
					    res_op->ops[0] = res;
					  }
					  res_op->ops[1] =  newmaskt;
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
					  gimple_seq *lseq = seq;
					  if (lseq
					      && (!single_use (captures[0])
					          || !single_use (captures[1])))
					    lseq = NULL;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2526, __FILE__, __LINE__);
					  res_op->set_op (BIT_AND_EXPR, type, 2);
					  res_op->ops[0] = captures[0];
					  res_op->ops[1] =  newmaskt;
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				    }
			      }
			    }
		      }
		    }
	      }
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_161 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (div))
{
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 588, __FILE__, __LINE__);
      tree tem;
      tem = captures[0];
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_162 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (coshs), const combined_fn ARG_UNUSED (atanhs), const combined_fn ARG_UNUSED (sqrts))
{
/* #line 4441 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!flag_errno_math)
    {
      {
/* #line 4457 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree t_one = build_one_cst (type);
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4458, __FILE__, __LINE__);
	  res_op->set_op (RDIV_EXPR, type, 2);
	  res_op->ops[0] =  t_one;
	  {
	    tree ops1[1], res;
	    {
	      tree ops2[2], res;
	      {
		tree ops3[2], res;
		ops3[0] =  t_one;
		ops3[1] = captures[1];
		gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		ops2[0] = res;
	      }
	      {
		tree ops3[2], res;
		ops3[0] =  t_one;
		ops3[1] = captures[1];
		gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		ops2[1] = res;
	      }
	      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	      gimple_resimplify2 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), sqrts, TREE_TYPE (ops1[0]), ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_163 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1393 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1394, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[1];
	  gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  gimple_resimplify1 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[1] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_164 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (optimize && canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4700, __FILE__, __LINE__);
      res_op->set_op (tos, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_165 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1])) && (CONSTANT_CLASS_P (captures[1]) || single_use (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1612, __FILE__, __LINE__);
      res_op->set_op (op, type, 2);
      res_op->ops[0] = captures[1];
      res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[1]));
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_166 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3240, __FILE__, __LINE__);
  tree tem;
  tem =  constant_boolean_node (true, type);
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_167 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])
          || !single_use (captures[3])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 765, __FILE__, __LINE__);
  res_op->set_op (MINUS_EXPR, type, 2);
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  res_op->ops[1] = captures[2];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_168 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (test1), const enum tree_code ARG_UNUSED (test2))
{
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3631, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (true, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_169 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
  {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 off0, off1;
 tree base0 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[1], 0), &off0);
 tree base1 = get_addr_base_and_unit_offset (TREE_OPERAND (captures[2], 0), &off1);
 if (base0 && TREE_CODE (base0) == MEM_REF) { off0 += mem_ref_offset (base0).force_shwi ();
 base0 = TREE_OPERAND (base0, 0);
 } if (base1 && TREE_CODE (base1) == MEM_REF) { off1 += mem_ref_offset (base1).force_shwi ();
 base1 = TREE_OPERAND (base1, 0);
 }/* #line 3884 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (base0 && base1)
	{
	  {
/* #line 3885 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 int equal = 2;
 if (0 && ((VAR_P (base0) && DECL_HAS_VALUE_EXPR_P (base0)) || (VAR_P (base1) && DECL_HAS_VALUE_EXPR_P (base1)))) ;
 else if (decl_in_symtab_p (base0) && decl_in_symtab_p (base1)) equal = symtab_node::get_create (base0) ->equal_address_to (symtab_node::get_create (base1));
 else if ((DECL_P (base0) || TREE_CODE (base0) == SSA_NAME || TREE_CODE (base0) == STRING_CST) && (DECL_P (base1) || TREE_CODE (base1) == SSA_NAME || TREE_CODE (base1) == STRING_CST)) equal = (base0 == base1);
 if (equal == 0) { if (!DECL_P (base0) || !DECL_P (base1)) equal = 2;
 else if (cmp != EQ_EXPR && cmp != NE_EXPR) equal = 2;
 else if (!INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))) ;
 else if (is_global_var (base0) != is_global_var (base1)) ;
 else { tree sz0 = DECL_SIZE_UNIT (base0);
 tree sz1 = DECL_SIZE_UNIT (base1);
 if (!tree_fits_poly_int64_p (sz0) || !tree_fits_poly_int64_p (sz1)) equal = 2;
 else { poly_int64 size0 = tree_to_poly_int64 (sz0);
 poly_int64 size1 = tree_to_poly_int64 (sz1);
 if (maybe_eq (off0, 0) && maybe_eq (off1, size1)) equal = 2;
 else if (maybe_eq (off1, 0) && maybe_eq (off0, size0)) equal = 2;
 if (equal == 2 && known_eq (off0, off1) && (known_ne (off0, 0) || (known_ne (size0, 0) && known_ne (size1, 0)))) equal = 0;
 } } }/* #line 3953 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (equal == 1 && (cmp == EQ_EXPR || cmp == NE_EXPR || known_eq (off0, off1) || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && (DECL_P (base0) || TREE_CODE (base0) == STRING_CST))))
		{
/* #line 3962 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1)))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3963, __FILE__, __LINE__);
		      tree tem;
		      tem =  constant_boolean_node (known_eq (off0, off1), type);
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 3964 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1)))
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3965, __FILE__, __LINE__);
			  tree tem;
			  tem =  constant_boolean_node (known_ne (off0, off1), type);
			  res_op->set_value (tem);
			  return true;
			}
		      else
			{
/* #line 3966 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1)))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3967, __FILE__, __LINE__);
			      tree tem;
			      tem =  constant_boolean_node (known_lt (off0, off1), type);
			      res_op->set_value (tem);
			      return true;
			    }
			  else
			    {
/* #line 3968 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1)))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3969, __FILE__, __LINE__);
				  tree tem;
				  tem =  constant_boolean_node (known_le (off0, off1), type);
				  res_op->set_value (tem);
				  return true;
				}
			      else
				{
/* #line 3970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1)))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3971, __FILE__, __LINE__);
				      tree tem;
				      tem =  constant_boolean_node (known_ge (off0, off1), type);
				      res_op->set_value (tem);
				      return true;
				    }
				  else
				    {
/* #line 3972 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1)))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3973, __FILE__, __LINE__);
					  tree tem;
					  tem =  constant_boolean_node (known_gt (off0, off1), type);
					  res_op->set_value (tem);
					  return true;
					}
				    }
				}
			    }
			}
		    }
		}
	      else
		{
/* #line 3974 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (equal == 0)
		    {
/* #line 3976 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == EQ_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3977, __FILE__, __LINE__);
			  tree tem;
			  tem =  constant_boolean_node (false, type);
			  res_op->set_value (tem);
			  return true;
			}
		      else
			{
/* #line 3978 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == NE_EXPR)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3979, __FILE__, __LINE__);
			      tree tem;
			      tem =  constant_boolean_node (true, type);
			      res_op->set_value (tem);
			      return true;
			    }
			}
		    }
		}
	  }
	}
  }
  return false;
}

static bool
gimple_simplify_170 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])
          || !single_use (captures[3])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 774, __FILE__, __LINE__);
  res_op->set_op (MINUS_EXPR, type, 2);
  res_op->ops[0] = captures[2];
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[1] = res;
  }
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_171 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (op))
{
  {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree from_type = TREE_TYPE (captures[0]), to_type = TREE_TYPE (captures[1]);
/* #line 2995 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (types_match (from_type, to_type) || (TYPE_UNSIGNED (from_type) && !TYPE_UNSIGNED (to_type) && TYPE_PRECISION (from_type) == TYPE_PRECISION (to_type) && integer_zerop (captures[1]) && (cmp == LT_EXPR || cmp == GE_EXPR)))
	{
	  {
/* #line 3002 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 wi::overflow_type overflow = wi::OVF_NONE;
 enum tree_code code, cmp_code = cmp;
 wide_int real_c1;
 wide_int c1 = wi::to_wide (captures[1]);
 wide_int c2 = wi::to_wide (captures[2]);
 wide_int c3 = wi::to_wide (captures[3]);
 signop sgn = TYPE_SIGN (from_type);
 if (!types_match (from_type, to_type)) { if (cmp_code == LT_EXPR) cmp_code = GT_EXPR;
 if (cmp_code == GE_EXPR) cmp_code = LE_EXPR;
 c1 = wi::max_value (to_type);
 } if (op == PLUS_EXPR) real_c1 = wi::sub (c3, c2, sgn, &overflow);
 else real_c1 = wi::add (c3, c2, sgn, &overflow);
 code = cmp_code;
 if (!overflow || !TYPE_OVERFLOW_UNDEFINED (from_type)) { if (!wi::cmp (wi::sub (real_c1, 1, sgn, &overflow), c1, sgn) && !overflow) { if (cmp_code == LE_EXPR) code = LT_EXPR;
 if (cmp_code == GT_EXPR) code = GE_EXPR;
 } if (!wi::cmp (wi::add (real_c1, 1, sgn, &overflow), c1, sgn) && !overflow) { if (cmp_code == LT_EXPR) code = LE_EXPR;
 if (cmp_code == GE_EXPR) code = GT_EXPR;
 } if (code != cmp_code || !wi::cmp (real_c1, c1, sgn)) { if (cmp_code == LT_EXPR || cmp_code == LE_EXPR) code = MIN_EXPR;
 if (cmp_code == GT_EXPR || cmp_code == GE_EXPR) code = MAX_EXPR;
 } }/* #line 3066 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (code == MAX_EXPR)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3067, __FILE__, __LINE__);
		  res_op->set_op (op, type, 2);
		  {
		    tree ops1[2], res;
		    ops1[0] = captures[0];
		    ops1[1] =  wide_int_to_tree (from_type, real_c1);
		    gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		    gimple_resimplify2 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    res_op->ops[0] = res;
		  }
		  res_op->ops[1] =  wide_int_to_tree (from_type, c2);
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	      else
		{
/* #line 3069 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (code == MIN_EXPR)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3070, __FILE__, __LINE__);
		      res_op->set_op (op, type, 2);
		      {
			tree ops1[2], res;
			ops1[0] = captures[0];
			ops1[1] =  wide_int_to_tree (from_type, real_c1);
			gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			gimple_resimplify2 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			res_op->ops[0] = res;
		      }
		      res_op->ops[1] =  wide_int_to_tree (from_type, c2);
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		}
	  }
	}
  }
  return false;
}

static bool
gimple_simplify_172 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (TAN), const combined_fn ARG_UNUSED (COS), const combined_fn ARG_UNUSED (SIN))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[0])
              || !single_use (captures[2])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4523, __FILE__, __LINE__);
      res_op->set_op (SIN, type, 1);
      res_op->ops[0] = captures[1];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_173 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2737, __FILE__, __LINE__);
  res_op->set_op (NOP_EXPR, type, 1);
  res_op->ops[0] = captures[0];
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_174 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 2801 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TREE_CODE (captures[3]) != INTEGER_CST && single_use (captures[0]) && !integer_zerop (captures[2]) && !integer_minus_onep (captures[2]))
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[0])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2804, __FILE__, __LINE__);
      res_op->set_op (MULT_EXPR, type, 2);
      {
	tree ops1[2], res;
	ops1[0] = captures[1];
	ops1[1] = captures[3];
	gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_175 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (div))
{
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) && TYPE_OVERFLOW_UNDEFINED (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 318, __FILE__, __LINE__);
      tree tem;
      tem =  build_minus_one_cst (type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_176 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 789, __FILE__, __LINE__);
  res_op->set_op (BIT_IOR_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_177 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 980, __FILE__, __LINE__);
  res_op->set_op (BIT_NOT_EXPR, type, 1);
  res_op->ops[0] = captures[0];
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_178 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3691, __FILE__, __LINE__);
  res_op->set_op (op, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_179 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 794, __FILE__, __LINE__);
  tree tem;
  tem = captures[2];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_180 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 799, __FILE__, __LINE__);
  res_op->set_op (BIT_NOT_EXPR, type, 1);
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_181 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 804, __FILE__, __LINE__);
  res_op->set_op (BIT_AND_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_182 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[1])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 809, __FILE__, __LINE__);
  res_op->set_op (BIT_IOR_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    gimple_resimplify1 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[1] = res;
  }
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_183 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2180, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_184 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (fns))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4474, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_185 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 825, __FILE__, __LINE__);
  res_op->set_op (BIT_IOR_EXPR, type, 2);
  res_op->ops[0] = captures[1];
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    gimple_resimplify1 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[1] = res;
  }
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_186 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 830, __FILE__, __LINE__);
  res_op->set_op (BIT_AND_EXPR, type, 2);
  res_op->ops[0] = captures[1];
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    gimple_resimplify1 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[1] = res;
  }
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_187 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (neg_op))
{
/* #line 428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
/* #line 435 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!HONOR_SIGNED_ZEROS (captures[1]) && !HONOR_INFINITIES (captures[1]))
	{
/* #line 437 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 438, __FILE__, __LINE__);
	      res_op->set_op (op, type, 2);
	      res_op->ops[0] = captures[1];
	      res_op->ops[1] = captures[2];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
/* #line 440 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (real_less (TREE_REAL_CST_PTR (captures[0]), &dconst0))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 441, __FILE__, __LINE__);
		  res_op->set_op (neg_op, type, 2);
		  res_op->ops[0] = captures[1];
		  res_op->ops[1] = captures[2];
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_188 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1003, __FILE__, __LINE__);
  res_op->set_op (bitop, type, 2);
  res_op->ops[0] = captures[1];
  res_op->ops[1] = captures[2];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_189 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (minmax))
{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (real_isnan (TREE_REAL_CST_PTR (captures[1])) && (!HONOR_SNANS (captures[1]) || !TREE_REAL_CST (captures[1]).signalling))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2262, __FILE__, __LINE__);
      tree tem;
      tem = captures[0];
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_190 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (VECTOR_TYPE_P (type) || (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1))
    {
      {
/* #line 3174 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 enum tree_code ic = invert_tree_comparison (cmp, HONOR_NANS (captures[0]));
/* #line 3176 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (ic == icmp)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3177, __FILE__, __LINE__);
	      res_op->set_op (icmp, type, 2);
	      res_op->ops[0] = captures[0];
	      res_op->ops[1] = captures[1];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
/* #line 3178 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (ic == ncmp)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3179, __FILE__, __LINE__);
		  res_op->set_op (ncmp, type, 2);
		  res_op->ops[0] = captures[0];
		  res_op->ops[1] = captures[1];
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_191 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (uncond_op), const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[1]);
/* #line 5199 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op), op_type) && element_precision (type) == element_precision (op_type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5201, __FILE__, __LINE__);
	  res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	  {
	    tree ops1[4], res;
	    ops1[0] = captures[0];
	    if (COMPARISON_CLASS_P (ops1[0]))
	      {
	        if (!seq) return false;
	        ops1[0] = gimple_build (seq, TREE_CODE (ops1[0]), TREE_TYPE (ops1[0]), TREE_OPERAND (ops1[0], 0), TREE_OPERAND (ops1[0], 1));
	      }
	    ops1[1] = captures[2];
	    ops1[2] = captures[3];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[4];
	      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[3] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2], ops1[3]);
	    gimple_resimplify4 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_192 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3809, __FILE__, __LINE__);
  res_op->set_op (icmp, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[1]));
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_193 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (rotate))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2333, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_194 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (uncond_op), const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5214 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[1]);
/* #line 5215 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (vectorized_internal_fn_supported_p (as_internal_fn (cond_op), op_type) && element_precision (type) == element_precision (op_type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5217, __FILE__, __LINE__);
	  res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	  {
	    tree ops1[5], res;
	    ops1[0] = captures[0];
	    if (COMPARISON_CLASS_P (ops1[0]))
	      {
	        if (!seq) return false;
	        ops1[0] = gimple_build (seq, TREE_CODE (ops1[0]), TREE_TYPE (ops1[0]), TREE_OPERAND (ops1[0], 0), TREE_OPERAND (ops1[0], 1));
	      }
	    ops1[1] = captures[2];
	    ops1[2] = captures[3];
	    ops1[3] = captures[4];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[5];
	      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[4] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2], ops1[3], ops1[4]);
	    gimple_resimplify5 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_195 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5129, __FILE__, __LINE__);
      res_op->set_op (CFN_FMA, type, 3);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      res_op->ops[2] = captures[2];
      gimple_resimplify3 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_196 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (POW))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
/* #line 4528 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!TREE_OVERFLOW (captures[2]))
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[1])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4529, __FILE__, __LINE__);
	  res_op->set_op (POW, type, 2);
	  res_op->ops[0] = captures[0];
	  {
	    tree ops1[2], res;
	    ops1[0] = captures[2];
	    ops1[1] =  build_one_cst (type);
	    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_197 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (cond_op))
{
  {
/* #line 5246 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree op_type = TREE_TYPE (captures[4]);
/* #line 5247 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (element_precision (type) == element_precision (op_type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5248, __FILE__, __LINE__);
	  res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	  {
	    tree ops1[5], res;
	    ops1[0] = captures[0];
	    if (COMPARISON_CLASS_P (ops1[0]))
	      {
	        if (!seq) return false;
	        ops1[0] = gimple_build (seq, TREE_CODE (ops1[0]), TREE_TYPE (ops1[0]), TREE_OPERAND (ops1[0], 0), TREE_OPERAND (ops1[0], 1));
	      }
	    ops1[1] = captures[1];
	    ops1[2] = captures[2];
	    ops1[3] = captures[3];
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[5];
	      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, op_type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[4] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), cond_op, TREE_TYPE (ops1[1]), ops1[0], ops1[1], ops1[2], ops1[3], ops1[4]);
	    gimple_resimplify5 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_198 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (div))
{
  {
/* #line 333 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 wi::overflow_type overflow;
 wide_int mul = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[3]), TYPE_SIGN (type), &overflow);
/* #line 338 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (div == EXACT_DIV_EXPR || optimize_successive_divisions_p (captures[3], captures[0]))
	{
/* #line 340 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!overflow)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 341, __FILE__, __LINE__);
	      res_op->set_op (div, type, 2);
	      res_op->ops[0] = captures[1];
	      res_op->ops[1] =  wide_int_to_tree (type, mul);
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
/* #line 342 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (TYPE_UNSIGNED (type) || mul != wi::min_value (TYPE_PRECISION (type), SIGNED))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 344, __FILE__, __LINE__);
		  tree tem;
		  tem =  build_zero_cst (type);
		  res_op->set_value (tem);
		  return true;
		}
	    }
	}
  }
  return false;
}

static bool
gimple_simplify_199 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) || POINTER_TYPE_P (TREE_TYPE (captures[2])) || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2]))) && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])))
    {
      {
/* #line 4017 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree cst = uniform_integer_cst_p (captures[2]);
 tree arg1_type = TREE_TYPE (cst);
 unsigned int prec = TYPE_PRECISION (arg1_type);
 wide_int max = wi::max_value (arg1_type);
 wide_int signed_max = wi::max_value (prec, SIGNED);
 wide_int min = wi::min_value (arg1_type);
/* #line 4027 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (wi::to_wide (cst) == max)
	    {
/* #line 4029 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (cmp == GT_EXPR)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4030, __FILE__, __LINE__);
		  tree tem;
		  tem =  constant_boolean_node (false, type);
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 4031 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (cmp == GE_EXPR)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4032, __FILE__, __LINE__);
		      res_op->set_op (EQ_EXPR, type, 2);
		      res_op->ops[0] = captures[0];
		      res_op->ops[1] = captures[2];
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		  else
		    {
/* #line 4033 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == LE_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4034, __FILE__, __LINE__);
			  tree tem;
			  tem =  constant_boolean_node (true, type);
			  res_op->set_value (tem);
			  return true;
			}
		      else
			{
/* #line 4035 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == LT_EXPR)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4036, __FILE__, __LINE__);
			      res_op->set_op (NE_EXPR, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[2];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		    }
		}
	    }
	  else
	    {
/* #line 4037 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (wi::to_wide (cst) == min)
		{
/* #line 4039 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (cmp == LT_EXPR)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4040, __FILE__, __LINE__);
		      tree tem;
		      tem =  constant_boolean_node (false, type);
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 4041 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == LE_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4042, __FILE__, __LINE__);
			  res_op->set_op (EQ_EXPR, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] = captures[2];
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
/* #line 4043 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == GE_EXPR)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4044, __FILE__, __LINE__);
			      tree tem;
			      tem =  constant_boolean_node (true, type);
			      res_op->set_value (tem);
			      return true;
			    }
			  else
			    {
/* #line 4045 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == GT_EXPR)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4046, __FILE__, __LINE__);
				  res_op->set_op (NE_EXPR, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[2];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			    }
			}
		    }
		}
	      else
		{
/* #line 4047 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (wi::to_wide (cst) == max - 1)
		    {
/* #line 4049 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == GT_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4050, __FILE__, __LINE__);
			  res_op->set_op (EQ_EXPR, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1));
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
/* #line 4054 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == LE_EXPR)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4055, __FILE__, __LINE__);
			      res_op->set_op (NE_EXPR, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1));
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		    }
		  else
		    {
/* #line 4059 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (wi::to_wide (cst) == min + 1)
			{
/* #line 4061 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == GE_EXPR)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4062, __FILE__, __LINE__);
			      res_op->set_op (NE_EXPR, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1));
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			  else
			    {
/* #line 4066 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == LT_EXPR)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4067, __FILE__, __LINE__);
				  res_op->set_op (EQ_EXPR, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1));
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			    }
			}
		      else
			{
/* #line 4071 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (wi::to_wide (cst) == signed_max && TYPE_UNSIGNED (arg1_type) && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type)) && INTEGRAL_TYPE_P (arg1_type))
			    {
/* #line 4082 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == LE_EXPR || cmp == GT_EXPR)
				{
				  {
/* #line 4083 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree st = signed_type_for (TREE_TYPE (captures[2]));
/* #line 4085 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (cst == captures[2] && cmp == LE_EXPR)
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4086, __FILE__, __LINE__);
					  res_op->set_op (GE_EXPR, type, 2);
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[1];
					    if (st != TREE_TYPE (ops1[0])
					        && !useless_type_conversion_p (st, TREE_TYPE (ops1[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, st, ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops1[0];
					    res_op->ops[0] = res;
					  }
					  res_op->ops[1] =  build_zero_cst (st);
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 4087 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (cst == captures[2] && cmp == GT_EXPR)
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4088, __FILE__, __LINE__);
					      res_op->set_op (LT_EXPR, type, 2);
					      {
						tree ops1[1], res;
						ops1[0] = captures[1];
						if (st != TREE_TYPE (ops1[0])
						    && !useless_type_conversion_p (st, TREE_TYPE (ops1[0])))
						  {
						    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, st, ops1[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						  }
						else
						  res = ops1[0];
						res_op->ops[0] = res;
					      }
					      res_op->ops[1] =  build_zero_cst (st);
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					  else
					    {
/* #line 4089 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (cmp == LE_EXPR)
						{
						  gimple_seq *lseq = seq;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4090, __FILE__, __LINE__);
						  res_op->set_op (GE_EXPR, type, 2);
						  {
						    tree ops1[1], res;
						    ops1[0] = captures[1];
						    gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, st, ops1[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  res_op->ops[1] =  build_zero_cst (st);
						  gimple_resimplify2 (lseq, res_op, valueize);
						  return true;
						}
					      else
						{
/* #line 4091 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  if (cmp == GT_EXPR)
						    {
						      gimple_seq *lseq = seq;
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4092, __FILE__, __LINE__);
						      res_op->set_op (LT_EXPR, type, 2);
						      {
							tree ops1[1], res;
							ops1[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, st, ops1[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							res_op->ops[0] = res;
						      }
						      res_op->ops[1] =  build_zero_cst (st);
						      gimple_resimplify2 (lseq, res_op, valueize);
						      return true;
						    }
						}
					    }
					}
				  }
				}
			    }
			}
		    }
		}
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_200 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 4666 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (optimize && canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4669, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), tos, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_201 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 381 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (SCALAR_FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type))
    {
/* #line 385 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (types_match (type, float_type_node))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 386, __FILE__, __LINE__);
	  res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
	  res_op->ops[0] =  build_one_cst (type);
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[0];
	    if (type != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
/* #line 387 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (types_match (type, double_type_node))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 388, __FILE__, __LINE__);
	      res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
	      res_op->ops[0] =  build_one_cst (type);
	      {
		tree ops1[1], res;
		ops1[0] = captures[0];
		if (type != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[1] = res;
	      }
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
/* #line 389 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (types_match (type, long_double_type_node))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 390, __FILE__, __LINE__);
		  res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
		  res_op->ops[0] =  build_one_cst (type);
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[0];
		    if (type != TREE_TYPE (ops1[0])
		        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		      {
			gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
		      }
		    else
		      res = ops1[0];
		    res_op->ops[1] = res;
		  }
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_202 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1289, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_203 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) || POINTER_TYPE_P (TREE_TYPE (captures[2])) || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2]))) && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])))
    {
      {
/* #line 4017 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree cst = uniform_integer_cst_p (captures[2]);
 tree arg1_type = TREE_TYPE (cst);
 unsigned int prec = TYPE_PRECISION (arg1_type);
 wide_int max = wi::max_value (arg1_type);
 wide_int signed_max = wi::max_value (prec, SIGNED);
 wide_int min = wi::min_value (arg1_type);
/* #line 4027 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (wi::to_wide (cst) == max)
	    {
/* #line 4029 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (cmp == GT_EXPR)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4030, __FILE__, __LINE__);
		  tree tem;
		  tem =  constant_boolean_node (false, type);
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 4031 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (cmp == GE_EXPR)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4032, __FILE__, __LINE__);
		      res_op->set_op (EQ_EXPR, type, 2);
		      res_op->ops[0] = captures[0];
		      res_op->ops[1] = captures[2];
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		  else
		    {
/* #line 4033 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == LE_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4034, __FILE__, __LINE__);
			  tree tem;
			  tem =  constant_boolean_node (true, type);
			  res_op->set_value (tem);
			  return true;
			}
		      else
			{
/* #line 4035 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == LT_EXPR)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4036, __FILE__, __LINE__);
			      res_op->set_op (NE_EXPR, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[2];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		    }
		}
	    }
	  else
	    {
/* #line 4037 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (wi::to_wide (cst) == min)
		{
/* #line 4039 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (cmp == LT_EXPR)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4040, __FILE__, __LINE__);
		      tree tem;
		      tem =  constant_boolean_node (false, type);
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 4041 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == LE_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4042, __FILE__, __LINE__);
			  res_op->set_op (EQ_EXPR, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] = captures[2];
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
/* #line 4043 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == GE_EXPR)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4044, __FILE__, __LINE__);
			      tree tem;
			      tem =  constant_boolean_node (true, type);
			      res_op->set_value (tem);
			      return true;
			    }
			  else
			    {
/* #line 4045 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == GT_EXPR)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4046, __FILE__, __LINE__);
				  res_op->set_op (NE_EXPR, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[2];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			    }
			}
		    }
		}
	      else
		{
/* #line 4047 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (wi::to_wide (cst) == max - 1)
		    {
/* #line 4049 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (cmp == GT_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4050, __FILE__, __LINE__);
			  res_op->set_op (EQ_EXPR, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1));
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
/* #line 4054 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == LE_EXPR)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4055, __FILE__, __LINE__);
			      res_op->set_op (NE_EXPR, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1));
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		    }
		  else
		    {
/* #line 4059 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (wi::to_wide (cst) == min + 1)
			{
/* #line 4061 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cmp == GE_EXPR)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4062, __FILE__, __LINE__);
			      res_op->set_op (NE_EXPR, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1));
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			  else
			    {
/* #line 4066 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == LT_EXPR)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4067, __FILE__, __LINE__);
				  res_op->set_op (EQ_EXPR, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] =  build_uniform_cst (TREE_TYPE (captures[2]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) - 1));
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			    }
			}
		      else
			{
/* #line 4071 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (wi::to_wide (cst) == signed_max && TYPE_UNSIGNED (arg1_type) && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type)) && INTEGRAL_TYPE_P (arg1_type))
			    {
/* #line 4082 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == LE_EXPR || cmp == GT_EXPR)
				{
				  {
/* #line 4083 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree st = signed_type_for (TREE_TYPE (captures[2]));
/* #line 4085 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (cst == captures[2] && cmp == LE_EXPR)
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4086, __FILE__, __LINE__);
					  res_op->set_op (GE_EXPR, type, 2);
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[1];
					    if (st != TREE_TYPE (ops1[0])
					        && !useless_type_conversion_p (st, TREE_TYPE (ops1[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, st, ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops1[0];
					    res_op->ops[0] = res;
					  }
					  res_op->ops[1] =  build_zero_cst (st);
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 4087 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (cst == captures[2] && cmp == GT_EXPR)
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4088, __FILE__, __LINE__);
					      res_op->set_op (LT_EXPR, type, 2);
					      {
						tree ops1[1], res;
						ops1[0] = captures[1];
						if (st != TREE_TYPE (ops1[0])
						    && !useless_type_conversion_p (st, TREE_TYPE (ops1[0])))
						  {
						    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, st, ops1[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						  }
						else
						  res = ops1[0];
						res_op->ops[0] = res;
					      }
					      res_op->ops[1] =  build_zero_cst (st);
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					  else
					    {
/* #line 4089 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (cmp == LE_EXPR)
						{
						  gimple_seq *lseq = seq;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4090, __FILE__, __LINE__);
						  res_op->set_op (GE_EXPR, type, 2);
						  {
						    tree ops1[1], res;
						    ops1[0] = captures[1];
						    gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, st, ops1[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  res_op->ops[1] =  build_zero_cst (st);
						  gimple_resimplify2 (lseq, res_op, valueize);
						  return true;
						}
					      else
						{
/* #line 4091 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  if (cmp == GT_EXPR)
						    {
						      gimple_seq *lseq = seq;
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4092, __FILE__, __LINE__);
						      res_op->set_op (LT_EXPR, type, 2);
						      {
							tree ops1[1], res;
							ops1[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, st, ops1[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							res_op->ops[0] = res;
						      }
						      res_op->ops[1] =  build_zero_cst (st);
						      gimple_resimplify2 (lseq, res_op, valueize);
						      return true;
						    }
						}
					    }
					}
				  }
				}
			    }
			}
		    }
		}
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_204 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3578 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!integer_zerop (captures[1]))
    {
/* #line 3579 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (wi::to_wide (captures[2]) == 0)
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3580, __FILE__, __LINE__);
	  res_op->set_op (cmp, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] = captures[2];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
/* #line 3581 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TREE_CODE (captures[1]) == INTEGER_CST)
	    {
	      {
/* #line 3582 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 wi::overflow_type ovf;
 wide_int prod = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[1]), TYPE_SIGN (TREE_TYPE (captures[1])), &ovf);
/* #line 3588 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (ovf)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3589, __FILE__, __LINE__);
		      tree tem;
		      tem =  constant_boolean_node (cmp == NE_EXPR, type);
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3590, __FILE__, __LINE__);
		      res_op->set_op (cmp, type, 2);
		      res_op->ops[0] = captures[0];
		      res_op->ops[1] =  wide_int_to_tree (TREE_TYPE (captures[0]), prod);
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
	      }
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_205 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop))
{
/* #line 1305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!CONSTANT_CLASS_P (captures[0]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1308, __FILE__, __LINE__);
      res_op->set_op (bitop, type, 2);
      res_op->ops[0] = captures[0];
      {
	tree ops1[2], res;
	ops1[0] = captures[1];
	ops1[1] = captures[2];
	gimple_match_op tem_op (res_op->cond.any_else (), bitop, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  else
    {
      {
/* #line 1317 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree cst1 = const_binop (bitop, type, captures[0], captures[2]);
/* #line 1318 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (cst1)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1319, __FILE__, __LINE__);
	      res_op->set_op (bitop, type, 2);
	      res_op->ops[0] = captures[1];
	      res_op->ops[1] =  cst1;
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
	      {
/* #line 1320 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree cst2 = const_binop (bitop, type, captures[1], captures[2]);
/* #line 1321 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (cst2)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1322, __FILE__, __LINE__);
		      res_op->set_op (bitop, type, 2);
		      res_op->ops[0] = captures[0];
		      res_op->ops[1] =  cst2;
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
	      }
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_206 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 3121 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (VECTOR_TYPE_P (type) && known_eq (TYPE_VECTOR_SUBPARTS (type), TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3]))) && (TYPE_MODE (TREE_TYPE (type)) == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3])))))
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[1])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3126, __FILE__, __LINE__);
      res_op->set_op (PLUS_EXPR, type, 2);
      res_op->ops[0] = captures[0];
      {
	tree ops1[1], res;
	{
	  tree ops2[3], res;
	  ops2[0] = captures[2];
	  ops2[0] = unshare_expr (ops2[0]);
	  {
	    tree ops3[1], res;
	    ops3[0] = captures[3];
	    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops3[0]), ops3[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    ops2[1] = res;
	  }
	  ops2[2] = captures[4];
	  gimple_match_op tem_op (res_op->cond.any_else (), VEC_COND_EXPR, TREE_TYPE (ops2[1]), ops2[0], ops2[1], ops2[2]);
	  gimple_resimplify3 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[0] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_207 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4937 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3]) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
    {
      {
/* #line 4939 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree res = int_const_binop (rop, captures[3], captures[2]);
/* #line 4940 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TREE_OVERFLOW (res))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4941, __FILE__, __LINE__);
	      tree tem;
 fold_overflow_warning (("assuming signed overflow does not occur " "when simplifying conditional to constant"), WARN_STRICT_OVERFLOW_CONDITIONAL);
 bool less = cmp == LE_EXPR || cmp == LT_EXPR;
 bool ovf_high = wi::lt_p (wi::to_wide (captures[2]), 0, TYPE_SIGN (TREE_TYPE (captures[2]))) != (op == MINUS_EXPR);
	      tem =  constant_boolean_node (less == ovf_high, type);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
/* #line 4952 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (single_use (captures[0]))
		{
		  {
/* #line 4953 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 fold_overflow_warning (("assuming signed overflow does not occur " "when changing X +- C1 cmp C2 to " "X cmp C2 -+ C1"), WARN_STRICT_OVERFLOW_COMPARISON);
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4960, __FILE__, __LINE__);
		      res_op->set_op (cmp, type, 2);
		      res_op->ops[0] = captures[1];
		      res_op->ops[1] =  res;
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		  }
		}
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_208 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1099, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[2], res;
	ops1[0] = captures[1];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[0];
	  gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	  gimple_resimplify1 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[1] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_209 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
      {
/* #line 3364 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = const_binop (op == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR, TREE_TYPE (captures[1]), captures[2], captures[1]);
/* #line 3369 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (tem && !TREE_OVERFLOW (tem))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3370, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      res_op->ops[0] = captures[0];
	      res_op->ops[1] =  tem;
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_210 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3376 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_associative_math)
    {
      {
/* #line 3379 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), captures[0], captures[2]);
/* #line 3380 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (tem && !TREE_OVERFLOW (tem))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3381, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      res_op->ops[0] =  tem;
	      res_op->ops[1] = captures[1];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_211 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (bswap))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2860, __FILE__, __LINE__);
  res_op->set_op (BIT_NOT_EXPR, type, 1);
  res_op->ops[0] = captures[0];
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_212 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop), const combined_fn ARG_UNUSED (bswap))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2864, __FILE__, __LINE__);
  res_op->set_op (bitop, type, 2);
  res_op->ops[0] = captures[0];
  {
    tree ops1[1], res;
    ops1[0] = captures[1];
    gimple_match_op tem_op (res_op->cond.any_else (), bswap, TREE_TYPE (ops1[0]), ops1[0]);
    gimple_resimplify1 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[1] = res;
  }
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_213 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 252, __FILE__, __LINE__);
      res_op->set_op (ABS_EXPR, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_214 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1060, __FILE__, __LINE__);
  res_op->set_op (BIT_AND_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_215 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3233 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (cmp != NE_EXPR || ! FLOAT_TYPE_P (TREE_TYPE (captures[0])) || ! HONOR_NANS (captures[0]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3236, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (false, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_216 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 748 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[2])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 751, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[2];
	  if (TREE_TYPE (ops1[0]) != TREE_TYPE (ops2[0])
	      && !useless_type_conversion_p (TREE_TYPE (ops1[0]), TREE_TYPE (ops2[0])))
	    {
	      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	    }
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_IOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_217 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type))
    {
      {
/* #line 2452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 unsigned int shiftc = tree_to_uhwi (captures[4]);
 unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
 unsigned HOST_WIDE_INT newmask, zerobits = 0;
 tree shift_type = TREE_TYPE (captures[2]);
 unsigned int prec;
 if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
 else if (shift == RSHIFT_EXPR && type_has_mode_precision_p (shift_type)) { prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
 tree arg00 = captures[3];
 if (captures[2] != captures[3] && TYPE_UNSIGNED (TREE_TYPE (captures[3]))) { tree inner_type = TREE_TYPE (captures[3]);
 if (type_has_mode_precision_p (inner_type) && TYPE_PRECISION (inner_type) < prec) { prec = TYPE_PRECISION (inner_type);
 if (shiftc < prec) shift_type = inner_type;
 } } zerobits = HOST_WIDE_INT_M1U;
 if (shiftc < prec) { zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
 zerobits <<= prec - shiftc;
 } if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && prec == TYPE_PRECISION (TREE_TYPE (captures[2]))) { if ((mask & zerobits) == 0) shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
 else zerobits = 0;
 } }/* #line 2506 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if ((mask & zerobits) == mask)
	    {
	      gimple_seq *lseq = seq;
	      if (lseq
	          && (!single_use (captures[0])
	              || !single_use (captures[1])))
	        lseq = NULL;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2507, __FILE__, __LINE__);
	      tree tem;
	      tem =  build_int_cst (type, 0);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
	      {
/* #line 2508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 newmask = mask | zerobits;
/* #line 2509 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (newmask != mask && (newmask & (newmask + 1)) == 0)
		    {
		      {
/* #line 2510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 for (prec = BITS_PER_UNIT;
 prec < HOST_BITS_PER_WIDE_INT;
 prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break;
/* #line 2519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
			    {
			      {
/* #line 2521 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 2523 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (!tree_int_cst_equal (newmaskt, captures[5]))
				    {
/* #line 2524 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (shift_type != TREE_TYPE (captures[2]))
					{
					  gimple_seq *lseq = seq;
					  if (lseq
					      && (!single_use (captures[0])
					          || !single_use (captures[1])))
					    lseq = NULL;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2525, __FILE__, __LINE__);
					  res_op->set_op (BIT_AND_EXPR, type, 2);
					  {
					    tree ops1[1], res;
					    {
					      tree ops2[2], res;
					      {
						tree ops3[1], res;
						ops3[0] = captures[2];
						if (shift_type != TREE_TYPE (ops3[0])
						    && !useless_type_conversion_p (shift_type, TREE_TYPE (ops3[0])))
						  {
						    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, ops3[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						  }
						else
						  res = ops3[0];
						ops2[0] = res;
					      }
					      ops2[1] = captures[4];
					      gimple_match_op tem_op (res_op->cond.any_else (), shift, shift_type, ops2[0], ops2[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      ops1[0] = res;
					    }
					    if (type != TREE_TYPE (ops1[0])
					        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops1[0];
					    res_op->ops[0] = res;
					  }
					  res_op->ops[1] =  newmaskt;
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
					  gimple_seq *lseq = seq;
					  if (lseq
					      && (!single_use (captures[0])
					          || !single_use (captures[1])))
					    lseq = NULL;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2526, __FILE__, __LINE__);
					  res_op->set_op (BIT_AND_EXPR, type, 2);
					  res_op->ops[0] = captures[0];
					  res_op->ops[1] =  newmaskt;
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				    }
			      }
			    }
		      }
		    }
	      }
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_218 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (SQRT_ALL))
{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
/* #line 4202 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!HONOR_SNANS (type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4203, __FILE__, __LINE__);
	  tree tem;
	  tem = captures[1];
	  res_op->set_value (tem);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_219 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (ncmp))
{
/* #line 3835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && type_has_mode_precision_p (TREE_TYPE (captures[1])) && element_precision (captures[0]) >= element_precision (captures[1]) && wi::only_sign_bit_p (wi::to_wide (captures[2]), element_precision (captures[1])))
    {
      {
/* #line 3839 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[1]));
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3840, __FILE__, __LINE__);
	  res_op->set_op (ncmp, type, 2);
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[1];
	    if (stype != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (stype, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, stype, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[0] = res;
	  }
	  res_op->ops[1] =  build_zero_cst (stype);
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_220 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 928, __FILE__, __LINE__);
  res_op->set_op (NOP_EXPR, type, 1);
  res_op->ops[0] =  build_all_ones_cst (TREE_TYPE (captures[0]));
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_221 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (icmp))
{
/* #line 1465 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_PRECISION (TREE_TYPE (captures[0])) > 1 && (wi::to_wide (captures[2]) == wi::max_value (TYPE_PRECISION (TREE_TYPE (captures[0])), SIGNED) - 1))
    {
      {
/* #line 1470 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[0]));
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1471, __FILE__, __LINE__);
	  res_op->set_op (icmp, type, 2);
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[0];
	    if (stype != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (stype, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, stype, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[0] = res;
	  }
	  res_op->ops[1] =  build_int_cst (stype, 0);
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_222 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
/* #line 5110 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (single_use (captures[0]))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5111, __FILE__, __LINE__);
	  res_op->set_op (CFN_FNMS, type, 3);
	  res_op->ops[0] = captures[1];
	  res_op->ops[1] = captures[2];
	  res_op->ops[2] = captures[3];
	  gimple_resimplify3 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_223 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (POW))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[0])
              || !single_use (captures[3])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4558, __FILE__, __LINE__);
      res_op->set_op (POW, type, 2);
      res_op->ops[0] = captures[1];
      {
	tree ops1[2], res;
	ops1[0] = captures[2];
	ops1[1] = captures[4];
	gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_224 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (coss), const combined_fn ARG_UNUSED (atans), const combined_fn ARG_UNUSED (sqrts), const combined_fn ARG_UNUSED (copysigns))
{
  {
/* #line 4428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 REAL_VALUE_TYPE r_cst;
 build_sinatan_real (&r_cst, type);
 tree t_cst = build_real (type, r_cst);
 tree t_one = build_one_cst (type);
 tree t_zero = build_zero_cst (type);
/* #line 4436 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (SCALAR_FLOAT_TYPE_P (type))
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4437, __FILE__, __LINE__);
	  res_op->set_op (COND_EXPR, type, 3);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[1];
	      gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    ops1[1] =  t_cst;
	    gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, boolean_type_node, ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  {
	    tree ops1[2], res;
	    ops1[0] =  t_one;
	    {
	      tree ops2[1], res;
	      {
		tree ops3[2], res;
		{
		  tree ops4[2], res;
		  ops4[0] = captures[1];
		  ops4[1] = captures[1];
		  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops4[0]), ops4[0], ops4[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  ops3[0] = res;
		}
		ops3[1] =  t_one;
		gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		ops2[0] = res;
	      }
	      gimple_match_op tem_op (res_op->cond.any_else (), sqrts, TREE_TYPE (ops2[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[1] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[1] = res;
	  }
	  {
	    tree ops1[2], res;
	    ops1[0] =  t_zero;
	    ops1[1] = captures[1];
	    gimple_match_op tem_op (res_op->cond.any_else (), copysigns, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[2] = res;
	  }
	  gimple_resimplify3 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_225 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 949, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_226 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3998 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (((POINTER_TYPE_P (TREE_TYPE (captures[0])) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[0]))) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && POINTER_TYPE_P (TREE_TYPE (captures[1])) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1]))))) && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4005, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[0];
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_227 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1477 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (wi::gt_p (wi::to_wide (captures[1]), 0, TYPE_SIGN (TREE_TYPE (captures[1]))))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1478, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_228 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[1])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 963, __FILE__, __LINE__);
  res_op->set_op (BIT_AND_EXPR, type, 2);
  {
    tree ops1[2], res;
    ops1[0] = captures[0];
    ops1[1] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    gimple_resimplify1 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[1] = res;
  }
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_229 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (acmp))
{
  {
/* #line 3138 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree cst = uniform_integer_cst_p (captures[1]);
/* #line 3139 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (tree_int_cst_sgn (cst) == -1)
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3140, __FILE__, __LINE__);
	  res_op->set_op (acmp, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] =  build_uniform_cst (TREE_TYPE (captures[1]), wide_int_to_tree (TREE_TYPE (cst), wi::to_wide (cst) + 1));
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_230 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5135, __FILE__, __LINE__);
      res_op->set_op (CFN_FMS, type, 3);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      res_op->ops[2] = captures[2];
      gimple_resimplify3 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_231 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (pows), const combined_fn ARG_UNUSED (exps), const combined_fn ARG_UNUSED (logs), const combined_fn ARG_UNUSED (exp2s), const combined_fn ARG_UNUSED (log2s))
{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
/* #line 4341 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[0]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[0])) && canonicalize_math_after_vectorization_p ())
	{
	  {
/* #line 4350 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 const REAL_VALUE_TYPE *const value = TREE_REAL_CST_PTR (captures[0]);
 bool use_exp2 = false;
 if (targetm.libc_has_function (function_c99_misc) && value->cl == rvc_normal) { REAL_VALUE_TYPE frac_rvt = *value;
 SET_REAL_EXP (&frac_rvt, 1);
 if (real_equal (&frac_rvt, &dconst1)) use_exp2 = true;
 }/* #line 4362 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (!use_exp2)
		{
/* #line 4363 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (optimize_pow_to_exp (captures[0], captures[1]))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4364, __FILE__, __LINE__);
		      res_op->set_op (exps, type, 1);
		      {
			tree ops1[2], res;
			{
			  tree ops2[1], res;
			  ops2[0] = captures[0];
			  gimple_match_op tem_op (res_op->cond.any_else (), logs, TREE_TYPE (ops2[0]), ops2[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  ops1[0] = res;
			}
			ops1[1] = captures[1];
			gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			gimple_resimplify2 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			res_op->ops[0] = res;
		      }
		      gimple_resimplify1 (lseq, res_op, valueize);
		      return true;
		    }
		}
	      else
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4365, __FILE__, __LINE__);
		  res_op->set_op (exp2s, type, 1);
		  {
		    tree ops1[2], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[0];
		      gimple_match_op tem_op (res_op->cond.any_else (), log2s, TREE_TYPE (ops2[0]), ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      ops1[0] = res;
		    }
		    ops1[1] = captures[1];
		    gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		    gimple_resimplify2 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    res_op->ops[0] = res;
		  }
		  gimple_resimplify1 (lseq, res_op, valueize);
		  return true;
		}
	  }
	}
    }
  return false;
}

static bool
gimple_simplify_232 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3784, __FILE__, __LINE__);
  res_op->set_op (cmp, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_233 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3790, __FILE__, __LINE__);
  res_op->set_op (cmp, type, 2);
  res_op->ops[0] = captures[1];
  res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[1]));
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_234 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1354, __FILE__, __LINE__);
  tree tem;
  tem =  constant_boolean_node (true, type);
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_235 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop))
{
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1133, __FILE__, __LINE__);
      res_op->set_op (rop, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[0] = res;
      }
      {
	tree ops1[2], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[1];
	  if (type != TREE_TYPE (ops2[0])
	      && !useless_type_conversion_p (type, TREE_TYPE (ops2[0])))
	    {
	      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	    }
	  else
	    res = ops2[0];
	  ops1[0] = res;
	}
	{
	  tree ops2[1], res;
	  ops2[0] = captures[2];
	  if (type != TREE_TYPE (ops2[0])
	      && !useless_type_conversion_p (type, TREE_TYPE (ops2[0])))
	    {
	      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	    }
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_236 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])
          || !single_use (captures[3])
          || !single_use (captures[4])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 985, __FILE__, __LINE__);
  res_op->set_op (BIT_NOT_EXPR, type, 1);
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_237 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 904 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 905, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (cmp == GT_EXPR, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_238 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 2541 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && (element_precision (TREE_TYPE (captures[2])) <= element_precision (TREE_TYPE (captures[3])) || !TYPE_UNSIGNED (TREE_TYPE (captures[3]))))
    {
      {
/* #line 2545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree shift_type = TREE_TYPE (captures[2]);
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[1])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2547, __FILE__, __LINE__);
	  res_op->set_op (NOP_EXPR, type, 1);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[3];
	      if (shift_type != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (shift_type, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_239 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])
          || !single_use (captures[3])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 990, __FILE__, __LINE__);
  res_op->set_op (BIT_IOR_EXPR, type, 2);
  res_op->ops[0] = captures[1];
  {
    tree ops1[1], res;
    ops1[0] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    gimple_resimplify1 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[1] = res;
  }
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_240 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1386 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (element_precision (type) <= element_precision (TREE_TYPE (captures[0])) || !TYPE_UNSIGNED (TREE_TYPE (captures[0])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1388, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_241 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])
          || !single_use (captures[3])
          || !single_use (captures[4])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 995, __FILE__, __LINE__);
  res_op->set_op (BIT_NOT_EXPR, type, 1);
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_242 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op), const enum tree_code ARG_UNUSED (rop), const enum tree_code ARG_UNUSED (cmp))
{
/* #line 4921 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3]) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_TRAPS (TREE_TYPE (captures[1])) && !TYPE_SATURATING (TREE_TYPE (captures[1])))
    {
      {
/* #line 4925 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree res = int_const_binop (rop, captures[3], captures[2]);
/* #line 4926 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TREE_OVERFLOW (res) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4928, __FILE__, __LINE__);
	      tree tem;
	      tem =  constant_boolean_node (cmp == NE_EXPR, type);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
/* #line 4929 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (single_use (captures[0]))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4930, __FILE__, __LINE__);
		  res_op->set_op (cmp, type, 2);
		  res_op->ops[0] = captures[1];
		  res_op->ops[1] =  TREE_OVERFLOW (res) ? drop_tree_overflow (res) : res;
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_243 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 733, __FILE__, __LINE__);
  tree tem;
  tem =  build_zero_cst (type);
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_244 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (scmp))
{
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (FLOAT_TYPE_P (TREE_TYPE (captures[0])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))))
    {
      {
/* #line 3683 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = const_unop (NEGATE_EXPR, TREE_TYPE (captures[0]), captures[1]);
/* #line 3684 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (tem && !TREE_OVERFLOW (tem))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3685, __FILE__, __LINE__);
	      res_op->set_op (scmp, type, 2);
	      res_op->ops[0] = captures[0];
	      res_op->ops[1] =  tem;
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_245 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (rbitop))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1003, __FILE__, __LINE__);
  res_op->set_op (bitop, type, 2);
  res_op->ops[0] = captures[1];
  res_op->ops[1] = captures[2];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_246 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 2087 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])) && element_precision (type) <= element_precision (TREE_TYPE (captures[2])))
	    {
	      {
/* #line 2091 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2092, __FILE__, __LINE__);
		  res_op->set_op (NOP_EXPR, type, 1);
		  {
		    tree ops1[2], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[1];
		      if (utype != TREE_TYPE (ops2[0])
		          && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
			{
			  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
		        }
		      else
		        res = ops2[0];
		      ops1[0] = res;
		    }
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[2];
		      if (utype != TREE_TYPE (ops2[0])
		          && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
			{
			  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
		        }
		      else
		        res = ops2[0];
		      ops1[1] = res;
		    }
		    gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		    gimple_resimplify2 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    res_op->ops[0] = res;
		  }
		  gimple_resimplify1 (lseq, res_op, valueize);
		  return true;
	      }
	    }
	  else
	    {
/* #line 2093 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (((element_precision (type) <= element_precision (TREE_TYPE (captures[1]))) == (element_precision (type) <= element_precision (TREE_TYPE (captures[2])))) && (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])))))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2107, __FILE__, __LINE__);
		  res_op->set_op (MINUS_EXPR, type, 2);
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[1];
		    if (type != TREE_TYPE (ops1[0])
		        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		      {
			gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
		      }
		    else
		      res = ops1[0];
		    res_op->ops[0] = res;
		  }
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[2];
		    if (type != TREE_TYPE (ops1[0])
		        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		      {
			gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
		      }
		    else
		      res = ops1[0];
		    res_op->ops[1] = res;
		  }
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_247 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1008, __FILE__, __LINE__);
  res_op->set_op (BIT_XOR_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_248 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1907, __FILE__, __LINE__);
	  res_op->set_op (MINUS_EXPR, type, 2);
	  res_op->ops[0] = captures[2];
	  res_op->ops[1] = captures[1];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_249 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1013, __FILE__, __LINE__);
  res_op->set_op (BIT_AND_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_250 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4158 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4160, __FILE__, __LINE__);
      res_op->set_op (out, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[1]));
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_251 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1895, __FILE__, __LINE__);
	  res_op->set_op (NEGATE_EXPR, type, 1);
	  res_op->ops[0] = captures[1];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_252 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1021, __FILE__, __LINE__);
  res_op->set_op (BIT_IOR_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_253 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 1984 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1985, __FILE__, __LINE__);
	      res_op->set_op (NEGATE_EXPR, type, 1);
	      {
		tree ops1[1], res;
		ops1[0] = captures[0];
		if (type != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[0] = res;
	      }
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_254 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1837 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_SANITIZED (type))
	{
	  {
/* #line 1839 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree t1 = type;
 if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))) t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1846, __FILE__, __LINE__);
	      res_op->set_op (NOP_EXPR, type, 1);
	      {
		tree ops1[2], res;
		{
		  tree ops2[1], res;
		  ops2[0] = captures[0];
		  if (t1 != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (t1, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t1, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[1];
		  if (t1 != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (t1, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t1, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	  }
	}
    }
  return false;
}

static bool
gimple_simplify_255 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1026, __FILE__, __LINE__);
  res_op->set_op (PLUS_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_256 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1904, __FILE__, __LINE__);
	  res_op->set_op (PLUS_EXPR, type, 2);
	  res_op->ops[0] = captures[2];
	  res_op->ops[1] = captures[1];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_257 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (inner_op), const enum tree_code ARG_UNUSED (outer_op))
{
  {
/* #line 1705 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool fail = false;
 wide_int zero_mask_not;
 wide_int C0;
 wide_int cst_emit;
 if (TREE_CODE (captures[1]) == SSA_NAME) zero_mask_not = get_nonzero_bits (captures[1]);
 else fail = true;
 if (inner_op == BIT_XOR_EXPR) { C0 = wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3]));
 cst_emit = C0 | wi::to_wide (captures[3]);
 } else { C0 = wi::to_wide (captures[2]);
 cst_emit = C0 ^ wi::to_wide (captures[3]);
 }/* #line 1728 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!fail && (C0 & zero_mask_not) == 0)
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1729, __FILE__, __LINE__);
	  res_op->set_op (outer_op, type, 2);
	  res_op->ops[0] = captures[1];
	  res_op->ops[1] =  wide_int_to_tree (type, cst_emit);
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
/* #line 1730 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!fail && (wi::to_wide (captures[3]) & zero_mask_not) == 0)
	    {
	      gimple_seq *lseq = seq;
	      if (lseq
	          && (!single_use (captures[0])))
	        lseq = NULL;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1731, __FILE__, __LINE__);
	      res_op->set_op (inner_op, type, 2);
	      res_op->ops[0] = captures[1];
	      res_op->ops[1] =  wide_int_to_tree (type, cst_emit);
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
  }
  return false;
}

static bool
gimple_simplify_258 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (inner_op), const enum tree_code ARG_UNUSED (neg_inner_op), const enum tree_code ARG_UNUSED (outer_op))
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 1927 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type))
	    {
/* #line 1930 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (!CONSTANT_CLASS_P (captures[0]))
		{
/* #line 1931 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (outer_op == PLUS_EXPR)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1932, __FILE__, __LINE__);
		      res_op->set_op (PLUS_EXPR, type, 2);
		      {
			tree ops1[1], res;
			ops1[0] = captures[0];
			gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, ops1[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			res_op->ops[0] = res;
		      }
		      {
			tree ops1[2], res;
			ops1[0] = captures[2];
			{
			  tree ops2[1], res;
			  ops2[0] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, ops2[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  ops1[1] = res;
			}
			gimple_match_op tem_op (res_op->cond.any_else (), inner_op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			gimple_resimplify2 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			res_op->ops[1] = res;
		      }
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		  else
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1933, __FILE__, __LINE__);
		      res_op->set_op (MINUS_EXPR, type, 2);
		      {
			tree ops1[1], res;
			ops1[0] = captures[0];
			gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, ops1[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			res_op->ops[0] = res;
		      }
		      {
			tree ops1[2], res;
			ops1[0] = captures[2];
			{
			  tree ops2[1], res;
			  ops2[0] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, ops2[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  ops1[1] = res;
			}
			gimple_match_op tem_op (res_op->cond.any_else (), neg_inner_op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			gimple_resimplify2 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			res_op->ops[1] = res;
		      }
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		}
	    }
	  else
	    {
/* #line 1934 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
		{
/* #line 1936 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (outer_op == PLUS_EXPR)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1937, __FILE__, __LINE__);
		      res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
		      {
			tree ops1[2], res;
			ops1[0] = captures[0];
			{
			  tree ops2[2], res;
			  {
			    tree ops3[1], res;
			    ops3[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, TREE_TYPE (ops1[0]), ops3[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops2[0] = res;
			  }
			  ops2[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), inner_op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  ops1[1] = res;
			}
			gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			gimple_resimplify2 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			res_op->ops[0] = res;
		      }
		      gimple_resimplify1 (lseq, res_op, valueize);
		      return true;
		    }
		  else
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1938, __FILE__, __LINE__);
		      res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
		      {
			tree ops1[2], res;
			ops1[0] = captures[0];
			{
			  tree ops2[2], res;
			  {
			    tree ops3[1], res;
			    ops3[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, TREE_TYPE (ops1[0]), ops3[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops2[0] = res;
			  }
			  ops2[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), neg_inner_op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  ops1[1] = res;
			}
			gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			gimple_resimplify2 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			res_op->ops[0] = res;
		      }
		      gimple_resimplify1 (lseq, res_op, valueize);
		      return true;
		    }
		}
	      else
		{
/* #line 1942 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (types_match (type, captures[0]))
		    {
		      {
/* #line 1943 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree cst = const_binop (outer_op == inner_op ? PLUS_EXPR : MINUS_EXPR, type, captures[1], captures[2]);
/* #line 1946 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (cst && !TREE_OVERFLOW (cst))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1947, __FILE__, __LINE__);
			      res_op->set_op (inner_op, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] =  cst;
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			  else
			    {
/* #line 1949 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (INTEGRAL_TYPE_P (type) && cst && wi::to_wide (cst) == wi::min_value (type))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1951, __FILE__, __LINE__);
				  res_op->set_op (neg_inner_op, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] =  wide_int_to_tree (type, wi::to_wide (cst));
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			      else
				{
				  {
/* #line 1953 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
/* #line 1954 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (utype)
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1955, __FILE__, __LINE__);
					  res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
					  {
					    tree ops1[2], res;
					    {
					      tree ops2[1], res;
					      ops2[0] = captures[0];
					      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, ops2[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      ops1[0] = res;
					    }
					    {
					      tree ops2[1], res;
					      ops2[0] =  drop_tree_overflow (cst);
					      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, utype, ops2[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      ops1[1] = res;
					    }
					    gimple_match_op tem_op (res_op->cond.any_else (), inner_op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					    gimple_resimplify2 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    res_op->ops[0] = res;
					  }
					  gimple_resimplify1 (lseq, res_op, valueize);
					  return true;
					}
				  }
				}
			    }
		      }
		    }
		}
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_259 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1915, __FILE__, __LINE__);
	  res_op->set_op (PLUS_EXPR, type, 2);
	  res_op->ops[0] = captures[1];
	  res_op->ops[1] = captures[2];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_260 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 2040 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
	    {
	      {
/* #line 2043 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2044, __FILE__, __LINE__);
		  res_op->set_op (NOP_EXPR, type, 1);
		  {
		    tree ops1[1], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[1];
		      if (utype != TREE_TYPE (ops2[0])
		          && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
			{
			  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
		        }
		      else
		        res = ops2[0];
		      ops1[0] = res;
		    }
		    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    res_op->ops[0] = res;
		  }
		  gimple_resimplify1 (lseq, res_op, valueize);
		  return true;
	      }
	    }
	  else
	    {
/* #line 2045 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2055, __FILE__, __LINE__);
		  res_op->set_op (NEGATE_EXPR, type, 1);
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[1];
		    if (type != TREE_TYPE (ops1[0])
		        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		      {
			gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
		      }
		    else
		      res = ops1[0];
		    res_op->ops[0] = res;
		  }
		  gimple_resimplify1 (lseq, res_op, valueize);
		  return true;
		}
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_261 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (TAN), const combined_fn ARG_UNUSED (SIN), const combined_fn ARG_UNUSED (COS))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
/* #line 4551 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (! HONOR_NANS (captures[1]) && ! HONOR_INFINITIES (captures[1]))
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[2])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4553, __FILE__, __LINE__);
	  res_op->set_op (RDIV_EXPR, type, 2);
	  res_op->ops[0] =  build_one_cst (type);
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[1];
	    gimple_match_op tem_op (res_op->cond.any_else (), COS, TREE_TYPE (ops1[0]), ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_262 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 2199 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TREE_CODE (type) != COMPLEX_TYPE && (! ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_UNDEFINED (type)))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2202, __FILE__, __LINE__);
      res_op->set_op (NEGATE_EXPR, type, 1);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_263 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1824 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && !TYPE_OVERFLOW_SANITIZED (type))
	{
	  {
/* #line 1826 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree t1 = type;
 if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))) t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1833, __FILE__, __LINE__);
	      res_op->set_op (NOP_EXPR, type, 1);
	      {
		tree ops1[2], res;
		{
		  tree ops2[1], res;
		  ops2[0] = captures[0];
		  if (t1 != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (t1, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t1, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[1];
		  if (t1 != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (t1, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, t1, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	  }
	}
    }
  return false;
}

static bool
gimple_simplify_264 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1892, __FILE__, __LINE__);
	  tree tem;
	  tem = captures[0];
	  res_op->set_value (tem);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_265 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 2003 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2013, __FILE__, __LINE__);
	      res_op->set_op (NOP_EXPR, type, 1);
	      res_op->ops[0] = captures[1];
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_266 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (neg_cmp))
{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
      {
/* #line 4217 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = const_binop (RDIV_EXPR, type, captures[2], captures[1]);
/* #line 4219 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (tem && !(REAL_VALUE_ISINF (TREE_REAL_CST (tem)) || (real_zerop (tem) && !real_zerop (captures[1]))))
	    {
/* #line 4223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[1])))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4224, __FILE__, __LINE__);
		  res_op->set_op (cmp, type, 2);
		  res_op->ops[0] = captures[0];
		  res_op->ops[1] =  tem;
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	      else
		{
/* #line 4225 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (real_less (TREE_REAL_CST_PTR (captures[1]), &dconst0))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4226, __FILE__, __LINE__);
		      res_op->set_op (neg_cmp, type, 2);
		      res_op->ops[0] = captures[0];
		      res_op->ops[1] =  tem;
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		}
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_267 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1055, __FILE__, __LINE__);
  res_op->set_op (BIT_XOR_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_268 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (outer_op))
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  {
/* #line 1964 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree cst = const_binop (outer_op, type, captures[0], captures[2]);
/* #line 1965 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (cst && !TREE_OVERFLOW (cst))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1966, __FILE__, __LINE__);
		  res_op->set_op (MINUS_EXPR, type, 2);
		  res_op->ops[0] =  cst;
		  res_op->ops[1] = captures[1];
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	  }
	}
    }
  return false;
}

static bool
gimple_simplify_269 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 1978 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!TYPE_OVERFLOW_TRAPS (type))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1979, __FILE__, __LINE__);
	      tree tem;
	      tem =  build_all_ones_cst (type);
	      res_op->set_value (tem);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_270 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 1910 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TYPE_OVERFLOW_UNDEFINED (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1912, __FILE__, __LINE__);
	      res_op->set_op (POINTER_DIFF_EXPR, type, 2);
	      res_op->ops[0] = captures[2];
	      res_op->ops[1] = captures[1];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_271 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1403 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
    {
      gimple_seq *lseq = seq;
      if (lseq
          && (!single_use (captures[0])
              || !single_use (captures[1])))
        lseq = NULL;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1404, __FILE__, __LINE__);
      res_op->set_op (BIT_NOT_EXPR, type, 1);
      {
	tree ops1[2], res;
	{
	  tree ops2[1], res;
	  ops2[0] = captures[2];
	  gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, ops2[0]);
	  gimple_resimplify1 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[0] = res;
	}
	ops1[1] = captures[3];
	gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_272 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])
          || !single_use (captures[3])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1065, __FILE__, __LINE__);
  res_op->set_op (BIT_NOT_EXPR, type, 1);
  {
    tree ops1[2], res;
    ops1[0] = captures[1];
    ops1[1] = captures[2];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
    gimple_resimplify2 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_273 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1886, __FILE__, __LINE__);
	  tree tem;
	  tem = captures[1];
	  res_op->set_value (tem);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_274 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type))
    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	{
/* #line 1990 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!TYPE_OVERFLOW_TRAPS (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1992, __FILE__, __LINE__);
	      res_op->set_op (BIT_NOT_EXPR, type, 1);
	      {
		tree ops1[1], res;
		ops1[0] = captures[0];
		if (type != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[0] = res;
	      }
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_275 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (div))
{
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (integer_pow2p (captures[2]) && tree_int_cst_sgn (captures[2]) > 0 && tree_nop_conversion_p (type, TREE_TYPE (captures[0])) && wi::to_wide (captures[2]) + wi::to_wide (captures[1]) == 0)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 451, __FILE__, __LINE__);
      res_op->set_op (RSHIFT_EXPR, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[0] = res;
      }
      res_op->ops[1] =  build_int_cst (integer_type_node, wi::exact_log2 (wi::to_wide (captures[2])));
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_276 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1070, __FILE__, __LINE__);
  res_op->set_op (BIT_XOR_EXPR, type, 2);
  res_op->ops[0] = captures[0];
  res_op->ops[1] = captures[1];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_277 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 2844 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (TREE_TYPE (captures[0]), type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2845, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_278 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])) && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2])) && (CONSTANT_CLASS_P (captures[3]) || (single_use (captures[1]) && single_use (captures[0]))))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1629, __FILE__, __LINE__);
      res_op->set_op (op, type, 2);
      res_op->ops[0] = captures[3];
      res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[3]));
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_279 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 495 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!integer_zerop (captures[0]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 496, __FILE__, __LINE__);
      tree tem;
      tem =  build_zero_cst (type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_280 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bit_op), const enum tree_code ARG_UNUSED (shift))
{
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
    {
      {
/* #line 2535 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[1])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2536, __FILE__, __LINE__);
	  res_op->set_op (bit_op, type, 2);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      if (type != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (type, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    gimple_match_op tem_op (res_op->cond.any_else (), shift, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  res_op->ops[1] =  mask;
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_281 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4500, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_282 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (div))
{
/* #line 304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!integer_zerop (captures[0]) && !ALL_FRACT_MODE_P (TYPE_MODE (type)))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 305, __FILE__, __LINE__);
      tree tem;
      tem =  build_one_cst (type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_283 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3761 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (SSA_NAME_IS_DEFAULT_DEF (captures[1]) && TREE_CODE (SSA_NAME_VAR (captures[1])) == PARM_DECL)
    {
      {
/* #line 3763 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree base = get_base_address (TREE_OPERAND (captures[0], 0));
/* #line 3764 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TREE_CODE (base) == VAR_DECL && auto_var_in_fn_p (base, current_function_decl))
	    {
/* #line 3766 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (cmp == NE_EXPR)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3767, __FILE__, __LINE__);
		  tree tem;
		  tem =  constant_boolean_node (true, type);
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3768, __FILE__, __LINE__);
		  tree tem;
		  tem =  constant_boolean_node (false, type);
		  res_op->set_value (tem);
		  return true;
		}
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_284 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2184, __FILE__, __LINE__);
  tree tem;
  tem = captures[1];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_285 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 258, __FILE__, __LINE__);
      res_op->set_op (NEGATE_EXPR, type, 1);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_286 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (froms), const combined_fn ARG_UNUSED (tos))
{
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (optimize && canonicalize_math_p () && targetm.libc_has_function (function_c99_misc))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4692, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), tos, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_287 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (POW))
{
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations && canonicalize_math_p ())
    {
/* #line 4573 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!TREE_OVERFLOW (captures[2]))
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4574, __FILE__, __LINE__);
	  res_op->set_op (POW, type, 2);
	  res_op->ops[0] = captures[1];
	  {
	    tree ops1[2], res;
	    ops1[0] = captures[2];
	    ops1[1] =  build_one_cst (type);
	    gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
    }
  return false;
}

static bool
gimple_simplify_288 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (popcount))
{
/* #line 5161 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nonzero_bits (captures[0]) == 1)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5162, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_289 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (opo), const enum tree_code ARG_UNUSED (opi))
{
  gimple_seq *lseq = seq;
  if (lseq
      && (!single_use (captures[0])))
    lseq = NULL;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1119, __FILE__, __LINE__);
  res_op->set_op (BIT_AND_EXPR, type, 2);
  {
    tree ops1[1], res;
    ops1[0] = captures[1];
    gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
    gimple_resimplify1 (lseq, &tem_op, valueize);
    res = maybe_push_res_to_seq (&tem_op, lseq);
    if (!res) return false;
    res_op->ops[0] = res;
  }
  res_op->ops[1] = captures[2];
  gimple_resimplify2 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_290 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (copysigns))
{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 672, __FILE__, __LINE__);
      res_op->set_op (NEGATE_EXPR, type, 1);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  else
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 673, __FILE__, __LINE__);
      res_op->set_op (ABS_EXPR, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_291 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4158 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4160, __FILE__, __LINE__);
      res_op->set_op (out, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[1]));
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_292 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[1])) && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4168, __FILE__, __LINE__);
      res_op->set_op (out, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] =  build_zero_cst (TREE_TYPE (captures[1]));
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_293 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bit_op), const enum tree_code ARG_UNUSED (shift))
{
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])))
    {
      {
/* #line 2535 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree mask = int_const_binop (shift, fold_convert (type, captures[3]), captures[4]);
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[1])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2536, __FILE__, __LINE__);
	  res_op->set_op (bit_op, type, 2);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[2];
	      if (type != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (type, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[0] = res;
	    }
	    ops1[1] = captures[4];
	    gimple_match_op tem_op (res_op->cond.any_else (), shift, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  res_op->ops[1] =  mask;
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_294 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 703 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (! FLOAT_TYPE_P (type) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 705, __FILE__, __LINE__);
      res_op->set_op (LSHIFT_EXPR, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_295 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 480 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!integer_zerop (captures[1]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 481, __FILE__, __LINE__);
      tree tem;
      tem = captures[0];
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_296 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (COPYSIGN_ALL))
{
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 258, __FILE__, __LINE__);
      res_op->set_op (NEGATE_EXPR, type, 1);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_297 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1145, __FILE__, __LINE__);
  res_op->set_op (NOP_EXPR, type, 1);
  res_op->ops[0] = captures[0];
  gimple_resimplify1 (lseq, res_op, valueize);
  return true;
  return false;
}

static bool
gimple_simplify_298 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (fmas))
{
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (canonicalize_math_after_vectorization_p ())
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5104, __FILE__, __LINE__);
      res_op->set_op (CFN_FMS, type, 3);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[1];
      res_op->ops[2] = captures[2];
      gimple_resimplify3 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_299 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && !(targetm.have_canonicalize_funcptr_for_compare () && ((POINTER_TYPE_P (TREE_TYPE (captures[1])) && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1])))) || (POINTER_TYPE_P (TREE_TYPE (captures[3])) && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[3])))))) && single_use (captures[0]))
    {
/* #line 3707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[0])) && (TREE_CODE (captures[3]) == INTEGER_CST || captures[2] != captures[3]) && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[0])) || cmp == NE_EXPR || cmp == EQ_EXPR) && !POINTER_TYPE_P (TREE_TYPE (captures[1])))
	{
/* #line 3717 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TREE_CODE (captures[2]) == INTEGER_CST)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3718, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      res_op->ops[0] = captures[1];
	      res_op->ops[1] =  force_fit_type (TREE_TYPE (captures[1]), wi::to_widest (captures[2]), 0, TREE_OVERFLOW (captures[2]));
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3720, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      res_op->ops[0] = captures[1];
	      {
		tree ops1[1], res;
		ops1[0] = captures[2];
		if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (ops1[0])
		    && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (ops1[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), ops1[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops1[0];
		res_op->ops[1] = res;
	      }
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
      else
	{
/* #line 3722 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1])))
	    {
/* #line 3724 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if ((cmp == EQ_EXPR || cmp == NE_EXPR || TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (TREE_TYPE (captures[1])) || (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[1])))) && (types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[1])) || ((TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[3]))) && (TYPE_UNSIGNED (TREE_TYPE (captures[1])) == TYPE_UNSIGNED (TREE_TYPE (captures[3])))) || (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && int_fits_type_p (captures[3], TREE_TYPE (captures[1])))))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3736, __FILE__, __LINE__);
		  res_op->set_op (cmp, type, 2);
		  res_op->ops[0] = captures[1];
		  {
		    tree ops1[1], res;
		    ops1[0] = captures[3];
		    if (TREE_TYPE (res_op->ops[0]) != TREE_TYPE (ops1[0])
		        && !useless_type_conversion_p (TREE_TYPE (res_op->ops[0]), TREE_TYPE (ops1[0])))
		      {
			gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (res_op->ops[0]), ops1[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
		      }
		    else
		      res = ops1[0];
		    res_op->ops[1] = res;
		  }
		  gimple_resimplify2 (lseq, res_op, valueize);
		  return true;
		}
	      else
		{
/* #line 3737 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (TREE_CODE (captures[3]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && !int_fits_type_p (captures[3], TREE_TYPE (captures[1])))
		    {
		      {
/* #line 3740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree min = lower_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
 tree max = upper_bound_in_type (TREE_TYPE (captures[3]), TREE_TYPE (captures[1]));
 bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, captures[3]));
 bool below = integer_nonzerop (const_binop (LT_EXPR, type, captures[3], min));
/* #line 3747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (above || below)
			    {
/* #line 3748 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (cmp == EQ_EXPR || cmp == NE_EXPR)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3749, __FILE__, __LINE__);
				  tree tem;
				  tem =  constant_boolean_node (cmp == EQ_EXPR ? false : true, type);
				  res_op->set_value (tem);
				  return true;
				}
			      else
				{
/* #line 3750 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (cmp == LT_EXPR || cmp == LE_EXPR)
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3751, __FILE__, __LINE__);
				      tree tem;
				      tem =  constant_boolean_node (above ? true : false, type);
				      res_op->set_value (tem);
				      return true;
				    }
				  else
				    {
/* #line 3752 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (cmp == GT_EXPR || cmp == GE_EXPR)
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3753, __FILE__, __LINE__);
					  tree tem;
					  tem =  constant_boolean_node (above ? false : true, type);
					  res_op->set_value (tem);
					  return true;
					}
				    }
				}
			    }
		      }
		    }
		}
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_300 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1141, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_301 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (flag_unsafe_math_optimizations)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4210, __FILE__, __LINE__);
      res_op->set_op (RDIV_EXPR, type, 2);
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	ops1[1] = captures[2];
	gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] = captures[1];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_302 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
    {
/* #line 1454 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (tree_expr_nonnegative_p (captures[1]) && tree_expr_nonzero_p (captures[1]))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1455, __FILE__, __LINE__);
	  res_op->set_op (cmp, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] = captures[2];
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
/* #line 1456 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TREE_CODE (captures[1]) == INTEGER_CST && wi::neg_p (wi::to_wide (captures[1]), TYPE_SIGN (TREE_TYPE (captures[1]))))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1458, __FILE__, __LINE__);
	      res_op->set_op (cmp, type, 2);
	      res_op->ops[0] = captures[2];
	      res_op->ops[1] = captures[0];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_303 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp), const enum tree_code ARG_UNUSED (out))
{
/* #line 4176 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    {
      {
/* #line 4177 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4178, __FILE__, __LINE__);
	  res_op->set_op (out, type, 2);
	  {
	    tree ops1[1], res;
	    {
	      tree ops2[2], res;
	      ops2[0] = captures[2];
	      ops2[1] = captures[1];
	      gimple_match_op tem_op (res_op->cond.any_else (), CFN_MUL_OVERFLOW, cpx, ops2[0], ops2[1]);
	      gimple_resimplify2 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  res_op->ops[1] =  build_zero_cst (t);
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_304 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 783 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (~wi::to_wide (captures[1]) == wi::to_wide (captures[2]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 784, __FILE__, __LINE__);
      res_op->set_op (BIT_XOR_EXPR, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_305 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 1484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && integer_nonzerop (captures[2]) && !TREE_OVERFLOW (captures[2]) && !TREE_OVERFLOW (captures[3]))
    {
      {
/* #line 1488 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree lo, hi;
 bool neg_overflow;
 enum tree_code code = fold_div_compare (cmp, captures[2], captures[3], &lo, &hi, &neg_overflow);
/* #line 1492 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (code == LT_EXPR || code == GE_EXPR)
	    {
/* #line 1493 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (TREE_OVERFLOW (lo))
		{
		  gimple_seq *lseq = seq;
		  if (lseq
		      && (!single_use (captures[0])))
		    lseq = NULL;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1494, __FILE__, __LINE__);
		  tree tem;
		  tem =  build_int_cst (type, (code == LT_EXPR) ^ neg_overflow);
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 1495 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (code == LT_EXPR)
		    {
		      gimple_seq *lseq = seq;
		      if (lseq
		          && (!single_use (captures[0])))
		        lseq = NULL;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1496, __FILE__, __LINE__);
		      res_op->set_op (LT_EXPR, type, 2);
		      res_op->ops[0] = captures[1];
		      res_op->ops[1] =  lo;
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		  else
		    {
		      gimple_seq *lseq = seq;
		      if (lseq
		          && (!single_use (captures[0])))
		        lseq = NULL;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1497, __FILE__, __LINE__);
		      res_op->set_op (GE_EXPR, type, 2);
		      res_op->ops[0] = captures[1];
		      res_op->ops[1] =  lo;
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		}
	    }
	  else
	    {
/* #line 1498 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (code == LE_EXPR || code == GT_EXPR)
		{
/* #line 1499 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (TREE_OVERFLOW (hi))
		    {
		      gimple_seq *lseq = seq;
		      if (lseq
		          && (!single_use (captures[0])))
		        lseq = NULL;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1500, __FILE__, __LINE__);
		      tree tem;
		      tem =  build_int_cst (type, (code == LE_EXPR) ^ neg_overflow);
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 1501 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (code == LE_EXPR)
			{
			  gimple_seq *lseq = seq;
			  if (lseq
			      && (!single_use (captures[0])))
			    lseq = NULL;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1502, __FILE__, __LINE__);
			  res_op->set_op (LE_EXPR, type, 2);
			  res_op->ops[0] = captures[1];
			  res_op->ops[1] =  hi;
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
			  gimple_seq *lseq = seq;
			  if (lseq
			      && (!single_use (captures[0])))
			    lseq = NULL;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1503, __FILE__, __LINE__);
			  res_op->set_op (GT_EXPR, type, 2);
			  res_op->ops[0] = captures[1];
			  res_op->ops[1] =  hi;
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		    }
		}
	      else
		{
/* #line 1504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (!lo && !hi)
		    {
		      gimple_seq *lseq = seq;
		      if (lseq
		          && (!single_use (captures[0])))
		        lseq = NULL;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1505, __FILE__, __LINE__);
		      tree tem;
		      tem =  build_int_cst (type, code == NE_EXPR);
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 1506 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (code == EQ_EXPR && !hi)
			{
			  gimple_seq *lseq = seq;
			  if (lseq
			      && (!single_use (captures[0])))
			    lseq = NULL;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1507, __FILE__, __LINE__);
			  res_op->set_op (GE_EXPR, type, 2);
			  res_op->ops[0] = captures[1];
			  res_op->ops[1] =  lo;
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
/* #line 1508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (code == EQ_EXPR && !lo)
			    {
			      gimple_seq *lseq = seq;
			      if (lseq
			          && (!single_use (captures[0])))
			        lseq = NULL;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1509, __FILE__, __LINE__);
			      res_op->set_op (LE_EXPR, type, 2);
			      res_op->ops[0] = captures[1];
			      res_op->ops[1] =  hi;
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			  else
			    {
/* #line 1510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (code == NE_EXPR && !hi)
				{
				  gimple_seq *lseq = seq;
				  if (lseq
				      && (!single_use (captures[0])))
				    lseq = NULL;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1511, __FILE__, __LINE__);
				  res_op->set_op (LT_EXPR, type, 2);
				  res_op->ops[0] = captures[1];
				  res_op->ops[1] =  lo;
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			      else
				{
/* #line 1512 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (code == NE_EXPR && !lo)
				    {
				      gimple_seq *lseq = seq;
				      if (lseq
				          && (!single_use (captures[0])))
				        lseq = NULL;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1513, __FILE__, __LINE__);
				      res_op->set_op (GT_EXPR, type, 2);
				      res_op->ops[0] = captures[1];
				      res_op->ops[1] =  hi;
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
/* #line 1514 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (0)
					{
					  gimple_seq *lseq = seq;
					  if (lseq
					      && (!single_use (captures[0])))
					    lseq = NULL;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1515, __FILE__, __LINE__);
					  tree tem;
					  tem =  build_range_check (UNKNOWN_LOCATION, type, captures[1], code == EQ_EXPR, lo, hi);
					  res_op->set_value (tem);
					  return true;
					}
				      else
					{
					  {
/* #line 1517 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree etype = range_check_type (TREE_TYPE (captures[1]));
 if (etype) { if (! TYPE_UNSIGNED (etype)) etype = unsigned_type_for (etype);
 hi = fold_convert (etype, hi);
 lo = fold_convert (etype, lo);
 hi = const_binop (MINUS_EXPR, etype, hi, lo);
 }/* #line 1529 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (etype && hi && !TREE_OVERFLOW (hi))
						{
/* #line 1530 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  if (code == EQ_EXPR)
						    {
						      gimple_seq *lseq = seq;
						      if (lseq
						          && (!single_use (captures[0])))
						        lseq = NULL;
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1531, __FILE__, __LINE__);
						      res_op->set_op (LE_EXPR, type, 2);
						      {
							tree ops1[2], res;
							{
							  tree ops2[1], res;
							  ops2[0] = captures[1];
							  if (etype != TREE_TYPE (ops2[0])
							      && !useless_type_conversion_p (etype, TREE_TYPE (ops2[0])))
							    {
							      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, etype, ops2[0]);
							      gimple_resimplify1 (lseq, &tem_op, valueize);
							      res = maybe_push_res_to_seq (&tem_op, lseq);
							      if (!res) return false;
							    }
							  else
							    res = ops2[0];
							  ops1[0] = res;
							}
							ops1[1] =  lo;
							gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
							gimple_resimplify2 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							res_op->ops[0] = res;
						      }
						      res_op->ops[1] =  hi;
						      gimple_resimplify2 (lseq, res_op, valueize);
						      return true;
						    }
						  else
						    {
						      gimple_seq *lseq = seq;
						      if (lseq
						          && (!single_use (captures[0])))
						        lseq = NULL;
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1532, __FILE__, __LINE__);
						      res_op->set_op (GT_EXPR, type, 2);
						      {
							tree ops1[2], res;
							{
							  tree ops2[1], res;
							  ops2[0] = captures[1];
							  if (etype != TREE_TYPE (ops2[0])
							      && !useless_type_conversion_p (etype, TREE_TYPE (ops2[0])))
							    {
							      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, etype, ops2[0]);
							      gimple_resimplify1 (lseq, &tem_op, valueize);
							      res = maybe_push_res_to_seq (&tem_op, lseq);
							      if (!res) return false;
							    }
							  else
							    res = ops2[0];
							  ops1[0] = res;
							}
							ops1[1] =  lo;
							gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
							gimple_resimplify2 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							res_op->ops[0] = res;
						      }
						      res_op->ops[1] =  hi;
						      gimple_resimplify2 (lseq, res_op, valueize);
						      return true;
						    }
						}
					  }
					}
				    }
				}
			    }
			}
		    }
		}
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_306 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 146 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (fold_real_zero_addition_p (type, captures[1], 0))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 147, __FILE__, __LINE__);
      tree tem;
      tem = captures[0];
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_307 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (cmp))
{
/* #line 3300 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3301, __FILE__, __LINE__);
      res_op->set_op (cmp, type, 2);
      res_op->ops[0] = captures[0];
      res_op->ops[1] =  build_real (TREE_TYPE (captures[1]), dconst0);
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  else
    {
/* #line 3303 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1])) && ! HONOR_SNANS (captures[1]))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3305, __FILE__, __LINE__);
	  tree tem;
	  tem =  constant_boolean_node (cmp == NE_EXPR, type);
	  res_op->set_value (tem);
	  return true;
	}
      else
	{
/* #line 3307 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (REAL_VALUE_ISINF (TREE_REAL_CST (captures[1])) && MODE_HAS_INFINITIES (TYPE_MODE (TREE_TYPE (captures[1]))))
	    {
	      {
/* #line 3309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 REAL_VALUE_TYPE max;
 enum tree_code code = cmp;
 bool neg = REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]));
 if (neg) code = swap_tree_comparison (code);
/* #line 3319 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (code == GT_EXPR && !(HONOR_NANS (captures[0]) && flag_trapping_math))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3321, __FILE__, __LINE__);
		      tree tem;
		      tem =  constant_boolean_node (false, type);
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 3322 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (code == LE_EXPR)
			{
/* #line 3324 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (! HONOR_NANS (captures[0]))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3325, __FILE__, __LINE__);
			      tree tem;
			      tem =  constant_boolean_node (true, type);
			      res_op->set_value (tem);
			      return true;
			    }
			  else
			    {
/* #line 3328 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (!flag_trapping_math)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3329, __FILE__, __LINE__);
				  res_op->set_op (EQ_EXPR, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[0];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			    }
			}
		      else
			{
/* #line 3332 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if ((code == EQ_EXPR && !(HONOR_NANS (captures[0]) && flag_trapping_math)) || code == GE_EXPR)
			    {
			      {
/* #line 3334 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
/* #line 3335 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (neg)
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3336, __FILE__, __LINE__);
				      res_op->set_op (LT_EXPR, type, 2);
				      res_op->ops[0] = captures[0];
				      res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), max);
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3337, __FILE__, __LINE__);
				      res_op->set_op (GT_EXPR, type, 2);
				      res_op->ops[0] = captures[0];
				      res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), max);
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
			      }
			    }
			  else
			    {
/* #line 3339 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (code == LT_EXPR)
				{
				  {
/* #line 3340 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
/* #line 3341 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (neg)
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3342, __FILE__, __LINE__);
					  res_op->set_op (GE_EXPR, type, 2);
					  res_op->ops[0] = captures[0];
					  res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), max);
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3343, __FILE__, __LINE__);
					  res_op->set_op (LE_EXPR, type, 2);
					  res_op->ops[0] = captures[0];
					  res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), max);
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				  }
				}
			      else
				{
/* #line 3346 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (code == NE_EXPR)
				    {
				      {
/* #line 3347 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
/* #line 3348 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (! HONOR_NANS (captures[0]))
					    {
/* #line 3349 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (neg)
						{
						  gimple_seq *lseq = seq;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3350, __FILE__, __LINE__);
						  res_op->set_op (GE_EXPR, type, 2);
						  res_op->ops[0] = captures[0];
						  res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), max);
						  gimple_resimplify2 (lseq, res_op, valueize);
						  return true;
						}
					      else
						{
						  gimple_seq *lseq = seq;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3351, __FILE__, __LINE__);
						  res_op->set_op (LE_EXPR, type, 2);
						  res_op->ops[0] = captures[0];
						  res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), max);
						  gimple_resimplify2 (lseq, res_op, valueize);
						  return true;
						}
					    }
					  else
					    {
/* #line 3352 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (neg)
						{
						  gimple_seq *lseq = seq;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3353, __FILE__, __LINE__);
						  res_op->set_op (UNGE_EXPR, type, 2);
						  res_op->ops[0] = captures[0];
						  res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), max);
						  gimple_resimplify2 (lseq, res_op, valueize);
						  return true;
						}
					      else
						{
						  gimple_seq *lseq = seq;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3354, __FILE__, __LINE__);
						  res_op->set_op (UNLE_EXPR, type, 2);
						  res_op->ops[0] = captures[0];
						  res_op->ops[1] =  build_real (TREE_TYPE (captures[0]), max);
						  gimple_resimplify2 (lseq, res_op, valueize);
						  return true;
						}
					    }
				      }
				    }
				}
			    }
			}
		    }
	      }
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_308 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (neeq))
{
/* #line 3985 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (POINTER_TYPE_P (TREE_TYPE (captures[0])) && ptrs_compare_unequal (captures[0], captures[1]))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3987, __FILE__, __LINE__);
      tree tem;
      tem =  constant_boolean_node (neeq != EQ_EXPR, type);
      res_op->set_value (tem);
      return true;
    }
  return false;
}

static bool
gimple_simplify_309 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 815, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_310 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 4835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[2])) && INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && type_has_mode_precision_p (TREE_TYPE (captures[2])) && type_has_mode_precision_p (TREE_TYPE (captures[4])) && type_has_mode_precision_p (type) && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2])) && types_match (captures[2], type) && (types_match (captures[2], captures[4]) || TREE_CODE (captures[4]) == INTEGER_CST))
    {
/* #line 4853 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2])))
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4854, __FILE__, __LINE__);
	  res_op->set_op (op, type, 2);
	  res_op->ops[0] = captures[2];
	  {
	    tree ops1[1], res;
	    ops1[0] = captures[4];
	    if (type != TREE_TYPE (ops1[0])
	        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	      {
		gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
	      }
	    else
	      res = ops1[0];
	    res_op->ops[1] = res;
	  }
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
      else
	{
	  {
/* #line 4855 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
	      gimple_seq *lseq = seq;
	      if (lseq
	          && (!single_use (captures[0])))
	        lseq = NULL;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4856, __FILE__, __LINE__);
	      res_op->set_op (NOP_EXPR, type, 1);
	      {
		tree ops1[2], res;
		{
		  tree ops2[1], res;
		  ops2[0] = captures[2];
		  if (utype != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[0] = res;
		}
		{
		  tree ops2[1], res;
		  ops2[0] = captures[4];
		  if (utype != TREE_TYPE (ops2[0])
		      && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		    {
		      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		    }
		  else
		    res = ops2[0];
		  ops1[1] = res;
		}
		gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	  }
	}
    }
  return false;
}

static bool
gimple_simplify_311 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 820, __FILE__, __LINE__);
  tree tem;
  tem = captures[2];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_312 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop), const enum tree_code ARG_UNUSED (op))
{
  {
/* #line 863 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree pmop[2];
 tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[5], op, captures[1], ERROR_MARK, NULL_TREE, NULL_TREE, captures[2], bitop, captures[3], captures[4], pmop);
/* #line 868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (utype)
	{
	  gimple_seq *lseq = seq;
	  if (lseq
	      && (!single_use (captures[0])
	          || !single_use (captures[2])))
	    lseq = NULL;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 869, __FILE__, __LINE__);
	  res_op->set_op (NOP_EXPR, type, 1);
	  {
	    tree ops1[2], res;
	    {
	      tree ops2[2], res;
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[0];
		if (utype != TREE_TYPE (ops3[0])
		    && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops3[0];
		ops2[0] = res;
	      }
	      {
		tree ops3[1], res;
		ops3[0] =  pmop[1];
		if (utype != TREE_TYPE (ops3[0])
		    && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
		  {
		    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		  }
		else
		  res = ops3[0];
		ops2[1] = res;
	      }
	      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	      gimple_resimplify2 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      ops1[0] = res;
	    }
	    {
	      tree ops2[1], res;
	      ops2[0] = captures[5];
	      if (utype != TREE_TYPE (ops2[0])
	          && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
		{
		  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
	        }
	      else
	        res = ops2[0];
	      ops1[1] = res;
	    }
	    gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	    gimple_resimplify2 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	    res_op->ops[0] = res;
	  }
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
  }
  return false;
}

static bool
gimple_simplify_313 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (minmax))
{
/* #line 2249 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (INTEGRAL_TYPE_P (type) && types_match (captures[1], type) && int_fits_type_p (captures[2], type) && TYPE_SIGN (TREE_TYPE (captures[0])) == TYPE_SIGN (type) && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2253, __FILE__, __LINE__);
      res_op->set_op (minmax, type, 2);
      res_op->ops[0] = captures[1];
      {
	tree ops1[1], res;
	ops1[0] = captures[2];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_314 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1803 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (POINTER_TYPE_P (TREE_TYPE (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
    {
      {
/* #line 1805 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 unsigned int align;
 unsigned HOST_WIDE_INT bitpos;
 get_pointer_alignment_1 (captures[0], &align, &bitpos);
/* #line 1811 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (wi::ltu_p (wi::to_wide (captures[1]), align / BITS_PER_UNIT))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1812, __FILE__, __LINE__);
	      tree tem;
	      tem =  wide_int_to_tree (type, (wi::to_wide (captures[1]) & (bitpos / BITS_PER_UNIT)));
	      res_op->set_value (tem);
	      return true;
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_315 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 1596 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1])))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1597, __FILE__, __LINE__);
      res_op->set_op (op, type, 2);
      res_op->ops[0] = captures[3];
      res_op->ops[1] = captures[2];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_316 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const combined_fn ARG_UNUSED (reduc))
{
  {
/* #line 5320 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 int i = single_nonzero_element (captures[1]);
/* #line 5321 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (i >= 0)
	{
	  {
/* #line 5322 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree elt = vector_cst_elt (captures[1], i);
 tree elt_type = TREE_TYPE (elt);
 unsigned int elt_bits = tree_to_uhwi (TYPE_SIZE (elt_type));
 tree size = bitsize_int (elt_bits);
 tree pos = bitsize_int (elt_bits * i);
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5327, __FILE__, __LINE__);
	      res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	      {
		tree ops1[2], res;
		{
		  tree ops2[3], res;
		  ops2[0] = captures[0];
		  ops2[1] =  size;
		  ops2[2] =  pos;
		  gimple_match_op tem_op (res_op->cond.any_else (), BIT_FIELD_REF, elt_type, ops2[0], ops2[1], ops2[2]);
		  gimple_resimplify3 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  ops1[0] = res;
		}
		ops1[1] =  elt;
		gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, elt_type, ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	  }
	}
  }
  return false;
}

static bool
gimple_simplify_317 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
/* #line 2743 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (type, TREE_TYPE (captures[2])) && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2])))
    {
      {
/* #line 2745 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 wi::overflow_type overflow;
 wide_int mul = wi::mul (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (type), &overflow);
/* #line 2751 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (types_match (type, TREE_TYPE (captures[2])) && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[2])) && !overflow)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2753, __FILE__, __LINE__);
	      res_op->set_op (op, type, 2);
	      res_op->ops[0] = captures[0];
	      res_op->ops[1] =  wide_int_to_tree (type, mul);
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	  else
	    {
	      {
/* #line 2754 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2755, __FILE__, __LINE__);
		  res_op->set_op (NOP_EXPR, type, 1);
		  {
		    tree ops1[2], res;
		    {
		      tree ops2[1], res;
		      ops2[0] = captures[0];
		      if (utype != TREE_TYPE (ops2[0])
		          && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
			{
			  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
		        }
		      else
		        res = ops2[0];
		      ops1[0] = res;
		    }
		    {
		      tree ops2[2], res;
		      {
			tree ops3[1], res;
			ops3[0] = captures[1];
			if (utype != TREE_TYPE (ops3[0])
			    && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
			  {
			    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			  }
			else
			  res = ops3[0];
			ops2[0] = res;
		      }
		      {
			tree ops3[1], res;
			ops3[0] = captures[2];
			if (utype != TREE_TYPE (ops3[0])
			    && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
			  {
			    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			  }
			else
			  res = ops3[0];
			ops2[1] = res;
		      }
		      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
		      gimple_resimplify2 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      ops1[1] = res;
		    }
		    gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		    gimple_resimplify2 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    res_op->ops[0] = res;
		  }
		  gimple_resimplify1 (lseq, res_op, valueize);
		  return true;
	      }
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_318 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (op))
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 815, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_319 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (shift))
{
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])) && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT && tree_fits_uhwi_p (captures[4]) && tree_to_uhwi (captures[4]) > 0 && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type))
    {
      {
/* #line 2452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 unsigned int shiftc = tree_to_uhwi (captures[4]);
 unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
 unsigned HOST_WIDE_INT newmask, zerobits = 0;
 tree shift_type = TREE_TYPE (captures[2]);
 unsigned int prec;
 if (shift == LSHIFT_EXPR) zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
 else if (shift == RSHIFT_EXPR && type_has_mode_precision_p (shift_type)) { prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
 tree arg00 = captures[3];
 if (captures[2] != captures[3] && TYPE_UNSIGNED (TREE_TYPE (captures[3]))) { tree inner_type = TREE_TYPE (captures[3]);
 if (type_has_mode_precision_p (inner_type) && TYPE_PRECISION (inner_type) < prec) { prec = TYPE_PRECISION (inner_type);
 if (shiftc < prec) shift_type = inner_type;
 } } zerobits = HOST_WIDE_INT_M1U;
 if (shiftc < prec) { zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
 zerobits <<= prec - shiftc;
 } if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && prec == TYPE_PRECISION (TREE_TYPE (captures[2]))) { if ((mask & zerobits) == 0) shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
 else zerobits = 0;
 } }/* #line 2506 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if ((mask & zerobits) == mask)
	    {
	      gimple_seq *lseq = seq;
	      if (lseq
	          && (!single_use (captures[0])
	              || !single_use (captures[1])))
	        lseq = NULL;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2507, __FILE__, __LINE__);
	      tree tem;
	      tem =  build_int_cst (type, 0);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
	      {
/* #line 2508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 newmask = mask | zerobits;
/* #line 2509 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (newmask != mask && (newmask & (newmask + 1)) == 0)
		    {
		      {
/* #line 2510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 for (prec = BITS_PER_UNIT;
 prec < HOST_BITS_PER_WIDE_INT;
 prec <<= 1) if (newmask == (HOST_WIDE_INT_1U << prec) - 1) break;
/* #line 2519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (prec < HOST_BITS_PER_WIDE_INT || newmask == HOST_WIDE_INT_M1U)
			    {
			      {
/* #line 2521 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
/* #line 2523 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (!tree_int_cst_equal (newmaskt, captures[5]))
				    {
/* #line 2524 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (shift_type != TREE_TYPE (captures[2]))
					{
					  gimple_seq *lseq = seq;
					  if (lseq
					      && (!single_use (captures[0])
					          || !single_use (captures[1])))
					    lseq = NULL;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2525, __FILE__, __LINE__);
					  res_op->set_op (BIT_AND_EXPR, type, 2);
					  {
					    tree ops1[1], res;
					    {
					      tree ops2[2], res;
					      {
						tree ops3[1], res;
						ops3[0] = captures[2];
						if (shift_type != TREE_TYPE (ops3[0])
						    && !useless_type_conversion_p (shift_type, TREE_TYPE (ops3[0])))
						  {
						    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, shift_type, ops3[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						  }
						else
						  res = ops3[0];
						ops2[0] = res;
					      }
					      ops2[1] = captures[4];
					      gimple_match_op tem_op (res_op->cond.any_else (), shift, shift_type, ops2[0], ops2[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      ops1[0] = res;
					    }
					    if (type != TREE_TYPE (ops1[0])
					        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops1[0];
					    res_op->ops[0] = res;
					  }
					  res_op->ops[1] =  newmaskt;
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
					  gimple_seq *lseq = seq;
					  if (lseq
					      && (!single_use (captures[0])
					          || !single_use (captures[1])))
					    lseq = NULL;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2526, __FILE__, __LINE__);
					  res_op->set_op (BIT_AND_EXPR, type, 2);
					  res_op->ops[0] = captures[0];
					  res_op->ops[1] =  newmaskt;
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				    }
			      }
			    }
		      }
		    }
	      }
	    }
      }
    }
  return false;
}

static bool
gimple_simplify_320 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
  gimple_seq *lseq = seq;
  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 975, __FILE__, __LINE__);
  tree tem;
  tem = captures[0];
  res_op->set_value (tem);
  return true;
  return false;
}

static bool
gimple_simplify_321 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
)
{
/* #line 1230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!HONOR_SIGN_DEPENDENT_ROUNDING (element_mode (type)) && !HONOR_SIGNED_ZEROS (element_mode (type)))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1232, __FILE__, __LINE__);
      res_op->set_op (MINUS_EXPR, type, 2);
      {
	tree ops1[1], res;
	ops1[0] = captures[1];
	gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	gimple_resimplify1 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      res_op->ops[1] = captures[0];
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_322 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (mod))
{
/* #line 561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0])) && tree_nop_conversion_p (type, TREE_TYPE (captures[1])) && integer_pow2p (captures[3]) && tree_int_cst_sgn (captures[3]) > 0)
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 565, __FILE__, __LINE__);
      res_op->set_op (BIT_AND_EXPR, type, 2);
      res_op->ops[0] = captures[0];
      {
	tree ops1[1], res;
	{
	  tree ops2[2], res;
	  ops2[0] = captures[2];
	  ops2[1] =  build_int_cst (TREE_TYPE (captures[2]), 1);
	  gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
	  gimple_resimplify2 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  ops1[0] = res;
	}
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[1] = res;
      }
      gimple_resimplify2 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_323 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (bitop))
{
/* #line 1262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (((TREE_CODE (captures[1]) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && int_fits_type_p (captures[1], TREE_TYPE (captures[0]))) || types_match (captures[0], captures[1])) && (bitop != BIT_AND_EXPR ||1) && ( TYPE_PRECISION (TREE_TYPE (captures[0])) < TYPE_PRECISION (type) || GET_MODE_CLASS (TYPE_MODE (type)) != MODE_INT || !type_has_mode_precision_p (type)))
    {
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1281, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      {
	tree ops1[2], res;
	ops1[0] = captures[0];
	{
	  tree ops2[1], res;
	  ops2[0] = captures[1];
	  if (TREE_TYPE (ops1[0]) != TREE_TYPE (ops2[0])
	      && !useless_type_conversion_p (TREE_TYPE (ops1[0]), TREE_TYPE (ops2[0])))
	    {
	      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, TREE_TYPE (ops1[0]), ops2[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	    }
	  else
	    res = ops2[0];
	  ops1[1] = res;
	}
	gimple_match_op tem_op (res_op->cond.any_else (), bitop, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
	gimple_resimplify2 (lseq, &tem_op, valueize);
	res = maybe_push_res_to_seq (&tem_op, lseq);
	if (!res) return false;
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  return false;
}

static bool
gimple_simplify_324 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 const tree ARG_UNUSED (type), tree *ARG_UNUSED (captures)
, const enum tree_code ARG_UNUSED (plusminus))
{
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
  if (!TYPE_SATURATING (type) && (!FLOAT_TYPE_P (type) || flag_associative_math))
    {
/* #line 2155 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!ALL_FRACT_MODE_P (TYPE_MODE (type)))
	{
/* #line 2158 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if ((!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type) || (INTEGRAL_TYPE_P (type) && tree_expr_nonzero_p (captures[0]) && expr_not_equal_to (captures[0], wi::minus_one (TYPE_PRECISION (type))))) && single_use (captures[1]))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2164, __FILE__, __LINE__);
	      res_op->set_op (MULT_EXPR, type, 2);
	      {
		tree ops1[2], res;
		ops1[0] =  build_one_cst (type);
		ops1[1] = captures[2];
		gimple_match_op tem_op (res_op->cond.any_else (), plusminus, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		gimple_resimplify2 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[0] = res;
	      }
	      res_op->ops[1] = captures[0];
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  return false;
}

static bool
gimple_simplify_ABS_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 117 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 117 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && !TYPE_UNSIGNED (TREE_TYPE (captures[0])) && element_precision (type) > element_precision (TREE_TYPE (captures[0])))
		      {
			{
/* #line 120 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 121, __FILE__, __LINE__);
			    res_op->set_op (NOP_EXPR, type, 1);
			    {
			      tree ops1[1], res;
			      ops1[0] = captures[0];
			      gimple_match_op tem_op (res_op->cond.any_else (), ABSU_EXPR, utype, ops1[0]);
			      gimple_resimplify1 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[0] = res;
			    }
			    gimple_resimplify1 (lseq, res_op, valueize);
			    return true;
			}
		      }
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 1168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1168, __FILE__, __LINE__);
		    tree tem;
		    tem = captures[0];
		    res_op->set_value (tem);
		    return true;
		  }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 1178 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1178, __FILE__, __LINE__);
		    res_op->set_op (ABS_EXPR, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 1187 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1187, __FILE__, __LINE__);
      tree tem;
      tem = captures[0];
      res_op->set_value (tem);
      return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COSF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COSF;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COSF;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 638 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_158 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_COPYSIGNF))
		      return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_ATANF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_224 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_ATANF, CFN_BUILT_IN_SQRTF, CFN_BUILT_IN_COPYSIGNF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COS (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COS;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COS;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 638 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_158 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_ATAN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_224 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_ATAN, CFN_BUILT_IN_SQRT, CFN_BUILT_IN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COSL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COSL;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COSL;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 638 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_158 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_COPYSIGNL))
		      return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_ATANL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_224 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_ATANL, CFN_BUILT_IN_SQRTL, CFN_BUILT_IN_COPYSIGNL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_COS (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_COS;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_COS;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 638 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_158 (res_op, seq, valueize, type, captures, CFN_COS, CFN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      case CFN_ATAN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_224 (res_op, seq, valueize, type, captures, CFN_COS, CFN_ATAN, CFN_SQRT, CFN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COSHF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COSHF;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COSHF;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 638 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_158 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSHF, CFN_BUILT_IN_COPYSIGNF))
		      return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_ATANHF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4441 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_162 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSHF, CFN_BUILT_IN_ATANHF, CFN_BUILT_IN_SQRTF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COSH (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COSH;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COSH;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 638 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_158 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSH, CFN_BUILT_IN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_ATANH:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4441 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_162 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSH, CFN_BUILT_IN_ATANH, CFN_BUILT_IN_SQRT))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COSHL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COSHL;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_BUILT_IN_COSHL;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 638 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_158 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSHL, CFN_BUILT_IN_COPYSIGNL))
		      return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_ATANHL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4441 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_162 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSHL, CFN_BUILT_IN_ATANHL, CFN_BUILT_IN_SQRTL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_COSH (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_COSH;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 595 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    const combined_fn coss = CFN_COSH;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 595, __FILE__, __LINE__);
		    res_op->set_op (coss, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 638 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_158 (res_op, seq, valueize, type, captures, CFN_COSH, CFN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      case CFN_ATANH:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4441 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_162 (res_op, seq, valueize, type, captures, CFN_COSH, CFN_ATANH, CFN_SQRT))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CCOSF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 691 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 691, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CCOSF, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CCOS (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 691 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 691, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CCOS, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CCOSL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 691 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 691, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CCOSL, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CCOSHF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 691 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 691, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CCOSHF, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CCOSH (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 691 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 691, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CCOSH, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CCOSHL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 691 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 691, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CCOSHL, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CABSF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CONJ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 698, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CABSF, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 698, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CABSF, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case COMPLEX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (real_zerop (o21))
		    {
		      {
/* #line 4463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4463, __FILE__, __LINE__);
			res_op->set_op (ABS_EXPR, type, 1);
			res_op->ops[0] = captures[0];
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		    }
		  if (real_zerop (o20))
		    {
		      {
/* #line 4463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4463, __FILE__, __LINE__);
			res_op->set_op (ABS_EXPR, type, 1);
			res_op->ops[0] = captures[0];
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		    }
		  if ((o21 == o20 && ! TREE_SIDE_EFFECTS (o21)) || (operand_equal_p (o21, o20, 0) && types_match (o21, o20)))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4624, __FILE__, __LINE__);
			    res_op->set_op (MULT_EXPR, type, 2);
			    {
			      tree ops1[1], res;
			      ops1[0] = captures[0];
			      gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			      gimple_resimplify1 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[0] = res;
			    }
			    res_op->ops[1] =  build_real_truncate (type, dconst_sqrt2 ());
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CABS (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CONJ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 698, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CABS, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 698, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CABS, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case COMPLEX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (real_zerop (o21))
		    {
		      {
/* #line 4463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4463, __FILE__, __LINE__);
			res_op->set_op (ABS_EXPR, type, 1);
			res_op->ops[0] = captures[0];
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		    }
		  if (real_zerop (o20))
		    {
		      {
/* #line 4463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4463, __FILE__, __LINE__);
			res_op->set_op (ABS_EXPR, type, 1);
			res_op->ops[0] = captures[0];
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		    }
		  if ((o21 == o20 && ! TREE_SIDE_EFFECTS (o21)) || (operand_equal_p (o21, o20, 0) && types_match (o21, o20)))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4624, __FILE__, __LINE__);
			    res_op->set_op (MULT_EXPR, type, 2);
			    {
			      tree ops1[1], res;
			      ops1[0] = captures[0];
			      gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			      gimple_resimplify1 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[0] = res;
			    }
			    res_op->ops[1] =  build_real_truncate (type, dconst_sqrt2 ());
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CABSL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CONJ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 698, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CABSL, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 698, __FILE__, __LINE__);
		    res_op->set_op (CFN_BUILT_IN_CABSL, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case COMPLEX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (real_zerop (o21))
		    {
		      {
/* #line 4463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4463, __FILE__, __LINE__);
			res_op->set_op (ABS_EXPR, type, 1);
			res_op->ops[0] = captures[0];
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		    }
		  if (real_zerop (o20))
		    {
		      {
/* #line 4463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4463, __FILE__, __LINE__);
			res_op->set_op (ABS_EXPR, type, 1);
			res_op->ops[0] = captures[0];
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		    }
		  if ((o21 == o20 && ! TREE_SIDE_EFFECTS (o21)) || (operand_equal_p (o21, o20, 0) && types_match (o21, o20)))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4624, __FILE__, __LINE__);
			    res_op->set_op (MULT_EXPR, type, 2);
			    {
			      tree ops1[1], res;
			      ops1[0] = captures[0];
			      gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			      gimple_resimplify1 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[0] = res;
			    }
			    res_op->ops[1] =  build_real_truncate (type, dconst_sqrt2 ());
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_BIT_NOT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 825 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 };
				    if (gimple_simplify_185 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 825 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o40, o20 };
				    if (gimple_simplify_185 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 830 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 };
				    if (gimple_simplify_186 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 830 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o40, o20 };
				    if (gimple_simplify_186 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 1364 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1364, __FILE__, __LINE__);
		    tree tem;
		    tem = captures[0];
		    res_op->set_value (tem);
		    return true;
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 1369 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[1] ATTRIBUTE_UNUSED = { o30 };
				    if (gimple_simplify_120 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      case MINUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (integer_each_onep (o31))
				    {
				      {
/* #line 1381 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[1] ATTRIBUTE_UNUSED = { o30 };
					if (gimple_simplify_18 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      case PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  if (integer_all_onesp (o31))
				    {
				      {
/* #line 1386 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[1] ATTRIBUTE_UNUSED = { o30 };
					if (gimple_simplify_240 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					{
/* #line 1393 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
					  if (gimple_simplify_163 (res_op, seq, valueize, type, captures))
					    return true;
					}
				        break;
				      }
				    default:;
				    }
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  {
/* #line 1397 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[2] ATTRIBUTE_UNUSED = { o40, o31 };
						    if (gimple_simplify_22 (res_op, seq, valueize, type, captures))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  switch (TREE_CODE (o31))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o31))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  {
/* #line 1397 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
						    if (gimple_simplify_22 (res_op, seq, valueize, type, captures))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case RSHIFT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  switch (TREE_CODE (o40))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o40))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o50 = gimple_assign_rhs1 (def);
								  o50 = do_valueize (valueize, o50);
								  {
/* #line 2541 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 };
								    if (gimple_simplify_238 (res_op, seq, valueize, type, captures))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case BIT_NOT_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  {
/* #line 2541 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 };
						    if (gimple_simplify_238 (res_op, seq, valueize, type, captures))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case LROTATE_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  switch (TREE_CODE (o40))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o40))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o50 = gimple_assign_rhs1 (def);
								  o50 = do_valueize (valueize, o50);
								  {
/* #line 2554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 };
								    if (gimple_simplify_125 (res_op, seq, valueize, type, captures, LROTATE_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case BIT_NOT_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  {
/* #line 2554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 };
						    if (gimple_simplify_125 (res_op, seq, valueize, type, captures, LROTATE_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case RROTATE_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  switch (TREE_CODE (o40))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o40))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o50 = gimple_assign_rhs1 (def);
								  o50 = do_valueize (valueize, o50);
								  {
/* #line 2554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o50, o31 };
								    if (gimple_simplify_125 (res_op, seq, valueize, type, captures, RROTATE_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case BIT_NOT_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  {
/* #line 2554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31 };
						    if (gimple_simplify_125 (res_op, seq, valueize, type, captures, RROTATE_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 1369 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_120 (res_op, seq, valueize, type, captures))
		      return true;
		  }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_each_onep (o21))
		    {
		      {
/* #line 1381 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_18 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_all_onesp (o21))
		    {
		      {
/* #line 1386 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_240 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 1393 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			  if (gimple_simplify_163 (res_op, seq, valueize, type, captures))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 1397 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    if (gimple_simplify_22 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 1397 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    if (gimple_simplify_22 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case RSHIFT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  {
/* #line 2541 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 };
						    if (gimple_simplify_86 (res_op, seq, valueize, type, captures))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2541 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 };
				    if (gimple_simplify_86 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LROTATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  {
/* #line 2554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 };
						    if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LROTATE_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 };
				    if (gimple_simplify_29 (res_op, seq, valueize, type, captures, LROTATE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case RROTATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  {
/* #line 2554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o40, o21 };
						    if (gimple_simplify_29 (res_op, seq, valueize, type, captures, RROTATE_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21 };
				    if (gimple_simplify_29 (res_op, seq, valueize, type, captures, RROTATE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR, UNGE_EXPR))
		      return true;
		  }
	          break;
	        }
	      case LE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR, UNGT_EXPR))
		      return true;
		  }
	          break;
	        }
	      case EQ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR, NE_EXPR))
		      return true;
		  }
	          break;
	        }
	      case NE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR, EQ_EXPR))
		      return true;
		  }
	          break;
	        }
	      case GE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, GE_EXPR, LT_EXPR, UNLT_EXPR))
		      return true;
		  }
	          break;
	        }
	      case GT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR, UNLE_EXPR))
		      return true;
		  }
	          break;
	        }
	      case UNORDERED_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR))
		      return true;
		  }
	          break;
	        }
	      case ORDERED_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR))
		      return true;
		  }
	          break;
	        }
	      case UNLT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, UNLT_EXPR, GE_EXPR, GE_EXPR))
		      return true;
		  }
	          break;
	        }
	      case UNLE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, UNLE_EXPR, GT_EXPR, GT_EXPR))
		      return true;
		  }
	          break;
	        }
	      case UNGT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, UNGT_EXPR, LE_EXPR, LE_EXPR))
		      return true;
		  }
	          break;
	        }
	      case UNGE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, UNGE_EXPR, LT_EXPR, LT_EXPR))
		      return true;
		  }
	          break;
	        }
	      case UNEQ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR))
		      return true;
		  }
	          break;
	        }
	      case LTGT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 3168 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_190 (res_op, seq, valueize, type, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_ABSU_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case ABSU_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 1172 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
/* #line 1172 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1])))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1173, __FILE__, __LINE__);
					tree tem;
					tem = captures[1];
					res_op->set_value (tem);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 1182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1182, __FILE__, __LINE__);
		    res_op->set_op (ABSU_EXPR, type, 1);
		    res_op->ops[0] = captures[0];
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 1191 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1191, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  }
  return false;
}

static bool
gimple_simplify_NEGATE_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (gimple_negate_expr_p (o21, valueize))
		    {
		      {
/* #line 1230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_321 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if (gimple_negate_expr_p (o20, valueize))
		    {
		      {
/* #line 1230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_321 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 1237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 1237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if ((ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type)) || (FLOAT_TYPE_P (type) && !HONOR_SIGN_DEPENDENT_ROUNDING (type) && !HONOR_SIGNED_ZEROS (type)))
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1241, __FILE__, __LINE__);
			res_op->set_op (MINUS_EXPR, type, 2);
			res_op->ops[0] = captures[1];
			res_op->ops[1] = captures[0];
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 1244 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 1244 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (TYPE_OVERFLOW_UNDEFINED (type))
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1245, __FILE__, __LINE__);
			res_op->set_op (POINTER_DIFF_EXPR, type, 2);
			res_op->ops[0] = captures[1];
			res_op->ops[1] = captures[0];
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[1] ATTRIBUTE_UNUSED = { o30 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (!TYPE_SATURATING (type))
				      {
/* #line 1852 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (INTEGRAL_TYPE_P (type) && (TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0])) || (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))) && !TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0])))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1858, __FILE__, __LINE__);
					    res_op->set_op (NOP_EXPR, type, 1);
					    res_op->ops[0] = captures[0];
					    gimple_resimplify1 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (gimple_negate_expr_p (o20, valueize))
		  {
		    {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (!TYPE_SATURATING (type))
			{
/* #line 1861 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (SCALAR_FLOAT_TYPE_P (type) && ((DECIMAL_FLOAT_TYPE_P (type) == DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0])) && TYPE_PRECISION (type) >= TYPE_PRECISION (TREE_TYPE (captures[0]))) || !HONOR_SIGN_DEPENDENT_ROUNDING (type)))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1866, __FILE__, __LINE__);
			      res_op->set_op (NOP_EXPR, type, 1);
			      {
				tree ops1[1], res;
				ops1[0] = captures[0];
				gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				gimple_resimplify1 (lseq, &tem_op, valueize);
				res = maybe_push_res_to_seq (&tem_op, lseq);
				if (!res) return false;
				res_op->ops[0] = res;
			      }
			      gimple_resimplify1 (lseq, res_op, valueize);
			      return true;
			    }
			}
		    }
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FMAF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  tree o22 = gimple_call_arg (def, 2);
		  o22 = do_valueize (valueize, o22);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
		    if (gimple_simplify_222 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF))
		      return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_FMA:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  tree o22 = gimple_call_arg (def, 2);
		  o22 = do_valueize (valueize, o22);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
		    if (gimple_simplify_222 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA))
		      return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_FMAL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  tree o22 = gimple_call_arg (def, 2);
		  o22 = do_valueize (valueize, o22);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
		    if (gimple_simplify_222 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL))
		      return true;
		  }
	          break;
	        }
	      case CFN_FMA:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  tree o22 = gimple_call_arg (def, 2);
		  o22 = do_valueize (valueize, o22);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
		    if (gimple_simplify_222 (res_op, seq, valueize, type, captures, CFN_FMA))
		      return true;
		  }
	          break;
	        }
	      case CFN_FMS:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  tree o22 = gimple_call_arg (def, 2);
		  o22 = do_valueize (valueize, o22);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (canonicalize_math_after_vectorization_p ())
		      {
/* #line 5124 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (single_use (captures[0]))
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5125, __FILE__, __LINE__);
			    res_op->set_op (CFN_FNMA, type, 3);
			    res_op->ops[0] = captures[1];
			    res_op->ops[1] = captures[2];
			    res_op->ops[2] = captures[3];
			    gimple_resimplify3 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		  }
	          break;
	        }
	      case CFN_FNMA:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  tree o22 = gimple_call_arg (def, 2);
		  o22 = do_valueize (valueize, o22);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (canonicalize_math_after_vectorization_p ())
		      {
/* #line 5138 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (single_use (captures[0]))
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5139, __FILE__, __LINE__);
			    res_op->set_op (CFN_FMS, type, 3);
			    res_op->ops[0] = captures[1];
			    res_op->ops[1] = captures[2];
			    res_op->ops[2] = captures[3];
			    gimple_resimplify3 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		  }
	          break;
	        }
	      case CFN_FNMS:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  tree o22 = gimple_call_arg (def, 2);
		  o22 = do_valueize (valueize, o22);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o22 };
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (canonicalize_math_after_vectorization_p ())
		      {
/* #line 5152 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (single_use (captures[0]))
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5153, __FILE__, __LINE__);
			    res_op->set_op (CFN_FMA, type, 3);
			    res_op->ops[0] = captures[1];
			    res_op->ops[1] = captures[2];
			    res_op->ops[2] = captures[3];
			    gimple_resimplify3 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_nop_convert (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case SSA_NAME:
	  if (gimple *def_stmt = get_def (valueize, o20))
	    {
	      if (gassign *def = dyn_cast <gassign *> (def_stmt))
	        switch (gimple_assign_rhs_code (def))
		  {
		  case BIT_NOT_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      {
/* #line 1376 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o30 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1376, __FILE__, __LINE__);
			res_op->set_op (PLUS_EXPR, type, 2);
			{
			  tree ops1[1], res;
			  ops1[0] = captures[0];
			  gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, type, ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			res_op->ops[1] =  build_each_one_cst (type);
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		      break;
		    }
		  case NEGATE_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o30 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (!TYPE_SATURATING (type))
			  {
/* #line 1869 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0])))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1871, __FILE__, __LINE__);
				res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
				res_op->ops[0] = captures[0];
				gimple_resimplify1 (lseq, res_op, valueize);
				return true;
			      }
			  }
		      }
		      break;
		    }
		  default:;
		  }
	    }
	  break;
        default:;
        }
}
}
  return false;
}

static bool
gimple_simplify_CONVERT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MIN_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					{
/* #line 2249 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 };
					  if (gimple_simplify_313 (res_op, seq, valueize, type, captures, MIN_EXPR))
					    return true;
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					{
/* #line 2249 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o21 };
					  if (gimple_simplify_313 (res_op, seq, valueize, type, captures, MAX_EXPR))
					    return true;
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  {
/* #line 2569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (0 && type == TREE_TYPE (captures[0])))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2571, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree inside_type = TREE_TYPE (captures[1]);
 tree inter_type = TREE_TYPE (captures[0]);
 int inside_int = INTEGRAL_TYPE_P (inside_type);
 int inside_ptr = POINTER_TYPE_P (inside_type);
 int inside_float = FLOAT_TYPE_P (inside_type);
 int inside_vec = VECTOR_TYPE_P (inside_type);
 unsigned int inside_prec = TYPE_PRECISION (inside_type);
 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
 int inter_int = INTEGRAL_TYPE_P (inter_type);
 int inter_ptr = POINTER_TYPE_P (inter_type);
 int inter_float = FLOAT_TYPE_P (inter_type);
 int inter_vec = VECTOR_TYPE_P (inter_type);
 unsigned int inter_prec = TYPE_PRECISION (inter_type);
 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
 int final_int = INTEGRAL_TYPE_P (type);
 int final_ptr = POINTER_TYPE_P (type);
 int final_float = FLOAT_TYPE_P (type);
 int final_vec = VECTOR_TYPE_P (type);
 unsigned int final_prec = TYPE_PRECISION (type);
 int final_unsignedp = TYPE_UNSIGNED (type);
/* #line 2648 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2654, __FILE__, __LINE__);
			    res_op->set_op (NOP_EXPR, type, 1);
			    res_op->ops[0] = captures[1];
			    gimple_resimplify1 (lseq, res_op, valueize);
			    return true;
			  }
			else
			  {
/* #line 2661 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2665, __FILE__, __LINE__);
				res_op->set_op (NOP_EXPR, type, 1);
				res_op->ops[0] = captures[1];
				gimple_resimplify1 (lseq, res_op, valueize);
				return true;
			      }
			    else
			      {
/* #line 2671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
				  {
				    gimple_seq *lseq = seq;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2675, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    res_op->ops[0] = captures[1];
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
				else
				  {
/* #line 2688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2698, __FILE__, __LINE__);
					res_op->set_op (NOP_EXPR, type, 1);
					res_op->ops[0] = captures[1];
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 2702 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2707, __FILE__, __LINE__);
					    res_op->set_op (NOP_EXPR, type, 1);
					    {
					      tree ops1[2], res;
					      ops1[0] = captures[1];
					      ops1[1] =  wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
					      gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[0] = res;
					    }
					    gimple_resimplify1 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 2715 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2719, __FILE__, __LINE__);
						res_op->set_op (NOP_EXPR, type, 1);
						res_op->ops[0] = captures[1];
						gimple_resimplify1 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			  }
		    }
		  }
	          break;
	        }
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree inside_type = TREE_TYPE (captures[1]);
 tree inter_type = TREE_TYPE (captures[0]);
 int inside_int = INTEGRAL_TYPE_P (inside_type);
 int inside_ptr = POINTER_TYPE_P (inside_type);
 int inside_float = FLOAT_TYPE_P (inside_type);
 int inside_vec = VECTOR_TYPE_P (inside_type);
 unsigned int inside_prec = TYPE_PRECISION (inside_type);
 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
 int inter_int = INTEGRAL_TYPE_P (inter_type);
 int inter_ptr = POINTER_TYPE_P (inter_type);
 int inter_float = FLOAT_TYPE_P (inter_type);
 int inter_vec = VECTOR_TYPE_P (inter_type);
 unsigned int inter_prec = TYPE_PRECISION (inter_type);
 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
 int final_int = INTEGRAL_TYPE_P (type);
 int final_ptr = POINTER_TYPE_P (type);
 int final_float = FLOAT_TYPE_P (type);
 int final_vec = VECTOR_TYPE_P (type);
 unsigned int final_prec = TYPE_PRECISION (type);
 int final_unsignedp = TYPE_UNSIGNED (type);
/* #line 2648 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2654, __FILE__, __LINE__);
			    res_op->set_op (NOP_EXPR, type, 1);
			    res_op->ops[0] = captures[1];
			    gimple_resimplify1 (lseq, res_op, valueize);
			    return true;
			  }
			else
			  {
/* #line 2661 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2665, __FILE__, __LINE__);
				res_op->set_op (NOP_EXPR, type, 1);
				res_op->ops[0] = captures[1];
				gimple_resimplify1 (lseq, res_op, valueize);
				return true;
			      }
			    else
			      {
/* #line 2671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
				  {
				    gimple_seq *lseq = seq;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2675, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    res_op->ops[0] = captures[1];
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
				else
				  {
/* #line 2688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2698, __FILE__, __LINE__);
					res_op->set_op (NOP_EXPR, type, 1);
					res_op->ops[0] = captures[1];
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 2702 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2707, __FILE__, __LINE__);
					    res_op->set_op (NOP_EXPR, type, 1);
					    {
					      tree ops1[2], res;
					      ops1[0] = captures[1];
					      ops1[1] =  wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
					      gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[0] = res;
					    }
					    gimple_resimplify1 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 2715 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2719, __FILE__, __LINE__);
						res_op->set_op (NOP_EXPR, type, 1);
						res_op->ops[0] = captures[1];
						gimple_resimplify1 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			  }
		    }
		  }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 2726 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 2726 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (INTEGRAL_TYPE_P (type) && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0])) && operand_equal_p (captures[1], build_low_bits_mask (TREE_TYPE (captures[1]), TYPE_PRECISION (type)), 0))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2731, __FILE__, __LINE__);
			      res_op->set_op (NOP_EXPR, type, 1);
			      res_op->ops[0] = captures[0];
			      gimple_resimplify1 (lseq, res_op, valueize);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o21))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  {
/* #line 4835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50 };
						    if (gimple_simplify_310 (res_op, seq, valueize, type, captures, PLUS_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  {
/* #line 4835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o21 };
				    if (gimple_simplify_89 (res_op, seq, valueize, type, captures, PLUS_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o21))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  {
/* #line 4835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50 };
						    if (gimple_simplify_310 (res_op, seq, valueize, type, captures, MINUS_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  {
/* #line 4835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o21 };
				    if (gimple_simplify_89 (res_op, seq, valueize, type, captures, MINUS_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_VIEW_CONVERT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  {
/* #line 2569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (0 && type == TREE_TYPE (captures[0])))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2571, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      {
/* #line 2576 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2576, __FILE__, __LINE__);
			res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
			res_op->ops[0] = captures[0];
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  {
/* #line 2582 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2582 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if ((INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type)) && (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0]))) && TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[0])))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2585, __FILE__, __LINE__);
	res_op->set_op (NOP_EXPR, type, 1);
	res_op->ops[0] = captures[0];
	gimple_resimplify1 (lseq, res_op, valueize);
	return true;
      }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2591 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
/* #line 2591 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0]))) && (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) || POINTER_TYPE_P (TREE_TYPE (captures[1]))) && TYPE_SIZE (TREE_TYPE (captures[0])) == TYPE_SIZE (TREE_TYPE (captures[1])) && (TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1])) || (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1])) && TYPE_UNSIGNED (TREE_TYPE (captures[1])))))
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2597, __FILE__, __LINE__);
			res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
			res_op->ops[0] = captures[1];
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CONSTRUCTOR:
	        {
		  {
/* #line 2602 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2602 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (TREE_CODE (captures[0]) != SSA_NAME && CONSTRUCTOR_NELTS (captures[0]) == 0)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2604, __FILE__, __LINE__);
			tree tem;
			tem =  build_zero_cst (type);
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_FLOAT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  {
/* #line 2569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (0 && type == TREE_TYPE (captures[0])))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2571, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree inside_type = TREE_TYPE (captures[1]);
 tree inter_type = TREE_TYPE (captures[0]);
 int inside_int = INTEGRAL_TYPE_P (inside_type);
 int inside_ptr = POINTER_TYPE_P (inside_type);
 int inside_float = FLOAT_TYPE_P (inside_type);
 int inside_vec = VECTOR_TYPE_P (inside_type);
 unsigned int inside_prec = TYPE_PRECISION (inside_type);
 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
 int inter_int = INTEGRAL_TYPE_P (inter_type);
 int inter_ptr = POINTER_TYPE_P (inter_type);
 int inter_float = FLOAT_TYPE_P (inter_type);
 int inter_vec = VECTOR_TYPE_P (inter_type);
 unsigned int inter_prec = TYPE_PRECISION (inter_type);
 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
 int final_int = INTEGRAL_TYPE_P (type);
 int final_ptr = POINTER_TYPE_P (type);
 int final_float = FLOAT_TYPE_P (type);
 int final_vec = VECTOR_TYPE_P (type);
 unsigned int final_prec = TYPE_PRECISION (type);
 int final_unsignedp = TYPE_UNSIGNED (type);
/* #line 2648 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2654, __FILE__, __LINE__);
			    res_op->set_op (FLOAT_EXPR, type, 1);
			    res_op->ops[0] = captures[1];
			    gimple_resimplify1 (lseq, res_op, valueize);
			    return true;
			  }
			else
			  {
/* #line 2661 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2665, __FILE__, __LINE__);
				res_op->set_op (FLOAT_EXPR, type, 1);
				res_op->ops[0] = captures[1];
				gimple_resimplify1 (lseq, res_op, valueize);
				return true;
			      }
			    else
			      {
/* #line 2671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
				  {
				    gimple_seq *lseq = seq;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2675, __FILE__, __LINE__);
				    res_op->set_op (FLOAT_EXPR, type, 1);
				    res_op->ops[0] = captures[1];
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
				else
				  {
/* #line 2688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2698, __FILE__, __LINE__);
					res_op->set_op (FLOAT_EXPR, type, 1);
					res_op->ops[0] = captures[1];
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 2702 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2707, __FILE__, __LINE__);
					    res_op->set_op (NOP_EXPR, type, 1);
					    {
					      tree ops1[2], res;
					      ops1[0] = captures[1];
					      ops1[1] =  wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
					      gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[0] = res;
					    }
					    gimple_resimplify1 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 2715 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2719, __FILE__, __LINE__);
						res_op->set_op (NOP_EXPR, type, 1);
						res_op->ops[0] = captures[1];
						gimple_resimplify1 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			  }
		    }
		  }
	          break;
	        }
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree inside_type = TREE_TYPE (captures[1]);
 tree inter_type = TREE_TYPE (captures[0]);
 int inside_int = INTEGRAL_TYPE_P (inside_type);
 int inside_ptr = POINTER_TYPE_P (inside_type);
 int inside_float = FLOAT_TYPE_P (inside_type);
 int inside_vec = VECTOR_TYPE_P (inside_type);
 unsigned int inside_prec = TYPE_PRECISION (inside_type);
 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
 int inter_int = INTEGRAL_TYPE_P (inter_type);
 int inter_ptr = POINTER_TYPE_P (inter_type);
 int inter_float = FLOAT_TYPE_P (inter_type);
 int inter_vec = VECTOR_TYPE_P (inter_type);
 unsigned int inter_prec = TYPE_PRECISION (inter_type);
 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
 int final_int = INTEGRAL_TYPE_P (type);
 int final_ptr = POINTER_TYPE_P (type);
 int final_float = FLOAT_TYPE_P (type);
 int final_vec = VECTOR_TYPE_P (type);
 unsigned int final_prec = TYPE_PRECISION (type);
 int final_unsignedp = TYPE_UNSIGNED (type);
/* #line 2648 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2654, __FILE__, __LINE__);
			    res_op->set_op (FLOAT_EXPR, type, 1);
			    res_op->ops[0] = captures[1];
			    gimple_resimplify1 (lseq, res_op, valueize);
			    return true;
			  }
			else
			  {
/* #line 2661 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2665, __FILE__, __LINE__);
				res_op->set_op (FLOAT_EXPR, type, 1);
				res_op->ops[0] = captures[1];
				gimple_resimplify1 (lseq, res_op, valueize);
				return true;
			      }
			    else
			      {
/* #line 2671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
				  {
				    gimple_seq *lseq = seq;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2675, __FILE__, __LINE__);
				    res_op->set_op (FLOAT_EXPR, type, 1);
				    res_op->ops[0] = captures[1];
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
				else
				  {
/* #line 2688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2698, __FILE__, __LINE__);
					res_op->set_op (FLOAT_EXPR, type, 1);
					res_op->ops[0] = captures[1];
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 2702 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2707, __FILE__, __LINE__);
					    res_op->set_op (NOP_EXPR, type, 1);
					    {
					      tree ops1[2], res;
					      ops1[0] = captures[1];
					      ops1[1] =  wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
					      gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[0] = res;
					    }
					    gimple_resimplify1 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 2715 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2719, __FILE__, __LINE__);
						res_op->set_op (NOP_EXPR, type, 1);
						res_op->ops[0] = captures[1];
						gimple_resimplify1 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			  }
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_FIX_TRUNC_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  {
/* #line 2569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[0]))) || (0 && type == TREE_TYPE (captures[0])))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2571, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree inside_type = TREE_TYPE (captures[1]);
 tree inter_type = TREE_TYPE (captures[0]);
 int inside_int = INTEGRAL_TYPE_P (inside_type);
 int inside_ptr = POINTER_TYPE_P (inside_type);
 int inside_float = FLOAT_TYPE_P (inside_type);
 int inside_vec = VECTOR_TYPE_P (inside_type);
 unsigned int inside_prec = TYPE_PRECISION (inside_type);
 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
 int inter_int = INTEGRAL_TYPE_P (inter_type);
 int inter_ptr = POINTER_TYPE_P (inter_type);
 int inter_float = FLOAT_TYPE_P (inter_type);
 int inter_vec = VECTOR_TYPE_P (inter_type);
 unsigned int inter_prec = TYPE_PRECISION (inter_type);
 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
 int final_int = INTEGRAL_TYPE_P (type);
 int final_ptr = POINTER_TYPE_P (type);
 int final_float = FLOAT_TYPE_P (type);
 int final_vec = VECTOR_TYPE_P (type);
 unsigned int final_prec = TYPE_PRECISION (type);
 int final_unsignedp = TYPE_UNSIGNED (type);
/* #line 2648 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2654, __FILE__, __LINE__);
			    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
			    res_op->ops[0] = captures[1];
			    gimple_resimplify1 (lseq, res_op, valueize);
			    return true;
			  }
			else
			  {
/* #line 2661 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2665, __FILE__, __LINE__);
				res_op->set_op (FIX_TRUNC_EXPR, type, 1);
				res_op->ops[0] = captures[1];
				gimple_resimplify1 (lseq, res_op, valueize);
				return true;
			      }
			    else
			      {
/* #line 2671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
				  {
				    gimple_seq *lseq = seq;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2675, __FILE__, __LINE__);
				    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
				    res_op->ops[0] = captures[1];
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
				else
				  {
/* #line 2688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2698, __FILE__, __LINE__);
					res_op->set_op (FIX_TRUNC_EXPR, type, 1);
					res_op->ops[0] = captures[1];
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 2702 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2707, __FILE__, __LINE__);
					    res_op->set_op (NOP_EXPR, type, 1);
					    {
					      tree ops1[2], res;
					      ops1[0] = captures[1];
					      ops1[1] =  wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
					      gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[0] = res;
					    }
					    gimple_resimplify1 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 2715 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2719, __FILE__, __LINE__);
						res_op->set_op (NOP_EXPR, type, 1);
						res_op->ops[0] = captures[1];
						gimple_resimplify1 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			  }
		    }
		  }
	          break;
	        }
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    {
/* #line 2620 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree inside_type = TREE_TYPE (captures[1]);
 tree inter_type = TREE_TYPE (captures[0]);
 int inside_int = INTEGRAL_TYPE_P (inside_type);
 int inside_ptr = POINTER_TYPE_P (inside_type);
 int inside_float = FLOAT_TYPE_P (inside_type);
 int inside_vec = VECTOR_TYPE_P (inside_type);
 unsigned int inside_prec = TYPE_PRECISION (inside_type);
 int inside_unsignedp = TYPE_UNSIGNED (inside_type);
 int inter_int = INTEGRAL_TYPE_P (inter_type);
 int inter_ptr = POINTER_TYPE_P (inter_type);
 int inter_float = FLOAT_TYPE_P (inter_type);
 int inter_vec = VECTOR_TYPE_P (inter_type);
 unsigned int inter_prec = TYPE_PRECISION (inter_type);
 int inter_unsignedp = TYPE_UNSIGNED (inter_type);
 int final_int = INTEGRAL_TYPE_P (type);
 int final_ptr = POINTER_TYPE_P (type);
 int final_float = FLOAT_TYPE_P (type);
 int final_vec = VECTOR_TYPE_P (type);
 unsigned int final_prec = TYPE_PRECISION (type);
 int final_unsignedp = TYPE_UNSIGNED (type);
/* #line 2648 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (((1 && useless_type_conversion_p (type, inside_type)) || (0 && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type))) && (((inter_int || inter_ptr) && final_int) || (inter_float && final_float)) && inter_prec >= final_prec)
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2654, __FILE__, __LINE__);
			    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
			    res_op->ops[0] = captures[1];
			    gimple_resimplify1 (lseq, res_op, valueize);
			    return true;
			  }
			else
			  {
/* #line 2661 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (((inter_int && inside_int) || (inter_float && inside_float)) && (final_int || final_float) && inter_prec >= inside_prec && (inter_float || inter_unsignedp == inside_unsignedp))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2665, __FILE__, __LINE__);
				res_op->set_op (FIX_TRUNC_EXPR, type, 1);
				res_op->ops[0] = captures[1];
				gimple_resimplify1 (lseq, res_op, valueize);
				return true;
			      }
			    else
			      {
/* #line 2671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (inside_int && inter_int && final_int && ((inside_prec < inter_prec && inter_prec < final_prec && inside_unsignedp && !inter_unsignedp) || final_prec == inter_prec))
				  {
				    gimple_seq *lseq = seq;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2675, __FILE__, __LINE__);
				    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
				    res_op->ops[0] = captures[1];
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
				else
				  {
/* #line 2688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (! inside_float && ! inter_float && ! final_float && ! inside_vec && ! inter_vec && ! final_vec && (inter_prec >= inside_prec || inter_prec >= final_prec) && ! (inside_int && inter_int && inter_unsignedp != inside_unsignedp && inter_prec < final_prec) && ((inter_unsignedp && inter_prec > inside_prec) == (final_unsignedp && final_prec > inter_prec)) && ! (inside_ptr && inter_prec != final_prec) && ! (final_ptr && inside_prec != inter_prec))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2698, __FILE__, __LINE__);
					res_op->set_op (FIX_TRUNC_EXPR, type, 1);
					res_op->ops[0] = captures[1];
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 2702 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (1 && final_int && inter_int && inside_int && final_prec == inside_prec && final_prec > inter_prec && inter_unsignedp)
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2707, __FILE__, __LINE__);
					    res_op->set_op (NOP_EXPR, type, 1);
					    {
					      tree ops1[2], res;
					      ops1[0] = captures[1];
					      ops1[1] =  wide_int_to_tree (inside_type, wi::mask (inter_prec, false, TYPE_PRECISION (inside_type)));
					      gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[0] = res;
					    }
					    gimple_resimplify1 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 2715 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (1 && inside_int && inter_float && final_int && (unsigned) significand_size (TYPE_MODE (inter_type)) >= inside_prec - !inside_unsignedp)
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2719, __FILE__, __LINE__);
						res_op->set_op (NOP_EXPR, type, 1);
						res_op->ops[0] = captures[1];
						gimple_resimplify1 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			  }
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_PAREN_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PAREN_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2613 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2613, __FILE__, __LINE__);
		    tree tem;
		    tem = captures[0];
		    res_op->set_value (tem);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (CONSTANT_CLASS_P (op0))
  {
    {
/* #line 2610 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2610, __FILE__, __LINE__);
      tree tem;
      tem = captures[0];
      res_op->set_value (tem);
      return true;
    }
  }
  return false;
}

static bool
gimple_simplify_REALPART_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case COMPLEX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 2817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2817, __FILE__, __LINE__);
		    tree tem;
		    tem = captures[0];
		    res_op->set_value (tem);
		    return true;
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case CONJ_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2825 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2825, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[1], res;
				      ops1[0] = captures[2];
				      gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
				      gimple_resimplify1 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      case PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  {
/* #line 2833 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
				    const enum tree_code op = PLUS_EXPR;
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2833, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[2], res;
				      {
					tree ops2[1], res;
					ops2[0] = captures[2];
					gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					ops1[0] = res;
				      }
				      {
					tree ops2[1], res;
					ops2[0] = captures[3];
					gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					ops1[1] = res;
				      }
				      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				      gimple_resimplify2 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      case MINUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  {
/* #line 2833 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
				    const enum tree_code op = MINUS_EXPR;
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2833, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[2], res;
				      {
					tree ops2[1], res;
					ops2[0] = captures[2];
					gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					ops1[0] = res;
				      }
				      {
					tree ops2[1], res;
					ops2[0] = captures[3];
					gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					ops1[1] = res;
				      }
				      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				      gimple_resimplify2 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      default:;
			      }
			  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_CEXPIF:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2836 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2836, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[1], res;
				      ops1[0] = captures[2];
				      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COSF, TREE_TYPE (ops1[0]), ops1[0]);
				      gimple_resimplify1 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      case CFN_BUILT_IN_CEXPI:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2836 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2836, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[1], res;
				      ops1[0] = captures[2];
				      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COS, TREE_TYPE (ops1[0]), ops1[0]);
				      gimple_resimplify1 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      case CFN_BUILT_IN_CEXPIL:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2836 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2836, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[1], res;
				      ops1[0] = captures[2];
				      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COSL, TREE_TYPE (ops1[0]), ops1[0]);
				      gimple_resimplify1 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CONJ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2825 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2825, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 2833 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
		    const enum tree_code op = PLUS_EXPR;
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2833, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[2], res;
		      {
			tree ops2[1], res;
			ops2[0] = captures[2];
			gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops1[0] = res;
		      }
		      {
			tree ops2[1], res;
			ops2[0] = captures[3];
			gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops1[1] = res;
		      }
		      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		      gimple_resimplify2 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 2833 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
		    const enum tree_code op = MINUS_EXPR;
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2833, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[2], res;
		      {
			tree ops2[1], res;
			ops2[0] = captures[2];
			gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops1[0] = res;
		      }
		      {
			tree ops2[1], res;
			ops2[0] = captures[3];
			gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops1[1] = res;
		      }
		      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		      gimple_resimplify2 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEXPIF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2836 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2836, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COSF, TREE_TYPE (ops1[0]), ops1[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CEXPI:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2836 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2836, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COS, TREE_TYPE (ops1[0]), ops1[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CEXPIL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2836 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2836, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_COSL, TREE_TYPE (ops1[0]), ops1[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_IMAGPART_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case COMPLEX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 2820 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2820, __FILE__, __LINE__);
		    tree tem;
		    tem = captures[1];
		    res_op->set_value (tem);
		    return true;
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case CONJ_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2828 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2828, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[1], res;
				      {
					tree ops2[1], res;
					ops2[0] = captures[2];
					gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					ops1[0] = res;
				      }
				      gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				      gimple_resimplify1 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      case PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  {
/* #line 2833 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
				    const enum tree_code op = PLUS_EXPR;
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2833, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[2], res;
				      {
					tree ops2[1], res;
					ops2[0] = captures[2];
					gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					ops1[0] = res;
				      }
				      {
					tree ops2[1], res;
					ops2[0] = captures[3];
					gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					ops1[1] = res;
				      }
				      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				      gimple_resimplify2 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      case MINUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  {
/* #line 2833 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
				    const enum tree_code op = MINUS_EXPR;
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2833, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[2], res;
				      {
					tree ops2[1], res;
					ops2[0] = captures[2];
					gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					ops1[0] = res;
				      }
				      {
					tree ops2[1], res;
					ops2[0] = captures[3];
					gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					ops1[1] = res;
				      }
				      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				      gimple_resimplify2 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      default:;
			      }
			  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_CEXPIF:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2839 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2839, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[1], res;
				      ops1[0] = captures[2];
				      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SINF, TREE_TYPE (ops1[0]), ops1[0]);
				      gimple_resimplify1 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      case CFN_BUILT_IN_CEXPI:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2839 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2839, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[1], res;
				      ops1[0] = captures[2];
				      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SIN, TREE_TYPE (ops1[0]), ops1[0]);
				      gimple_resimplify1 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      case CFN_BUILT_IN_CEXPIL:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2839 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o30 };
				    gimple_seq *lseq = seq;
				    if (lseq
				        && (!single_use (captures[0])
				            || !single_use (captures[1])))
				      lseq = NULL;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2839, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[1], res;
				      ops1[0] = captures[2];
				      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SINL, TREE_TYPE (ops1[0]), ops1[0]);
				      gimple_resimplify1 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CONJ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2828 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2828, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[1], res;
		      {
			tree ops2[1], res;
			ops2[0] = captures[2];
			gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops1[0] = res;
		      }
		      gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  {
/* #line 2833 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
		    const enum tree_code op = PLUS_EXPR;
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2833, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[2], res;
		      {
			tree ops2[1], res;
			ops2[0] = captures[2];
			gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops1[0] = res;
		      }
		      {
			tree ops2[1], res;
			ops2[0] = captures[3];
			gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops1[1] = res;
		      }
		      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		      gimple_resimplify2 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 2833 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
		    const enum tree_code op = MINUS_EXPR;
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2833, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[2], res;
		      {
			tree ops2[1], res;
			ops2[0] = captures[2];
			gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops1[0] = res;
		      }
		      {
			tree ops2[1], res;
			ops2[0] = captures[3];
			gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops1[1] = res;
		      }
		      gimple_match_op tem_op (res_op->cond.any_else (), op, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		      gimple_resimplify2 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEXPIF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2839 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2839, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SINF, TREE_TYPE (ops1[0]), ops1[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CEXPI:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2839 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2839, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SIN, TREE_TYPE (ops1[0]), ops1[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CEXPIL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2839 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o20 };
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])
		            || !single_use (captures[1])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2839, __FILE__, __LINE__);
		    res_op->set_op (NOP_EXPR, type, 1);
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[2];
		      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SINL, TREE_TYPE (ops1[0]), ops1[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    gimple_resimplify1 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CONJ_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case CONJ_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2844 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[1] ATTRIBUTE_UNUSED = { o30 };
				    if (gimple_simplify_277 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      case COMPLEX_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  {
/* #line 2850 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
				    {
/* #line 2850 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree itype = TREE_TYPE (type);
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[1])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2851, __FILE__, __LINE__);
					res_op->set_op (COMPLEX_EXPR, type, 2);
					{
					  tree ops1[1], res;
					  ops1[0] = captures[2];
					  if (itype != TREE_TYPE (ops1[0])
					      && !useless_type_conversion_p (itype, TREE_TYPE (ops1[0])))
					    {
					      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, itype, ops1[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					    }
					  else
					    res = ops1[0];
					  res_op->ops[0] = res;
					}
					{
					  tree ops1[1], res;
					  {
					    tree ops2[1], res;
					    ops2[0] = captures[3];
					    if (itype != TREE_TYPE (ops2[0])
					        && !useless_type_conversion_p (itype, TREE_TYPE (ops2[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, itype, ops2[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops2[0];
					    ops1[0] = res;
					  }
					  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				    }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CONJ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2844 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_277 (res_op, seq, valueize, type, captures))
		      return true;
		  }
	          break;
	        }
	      case COMPLEX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 2850 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, o20, o21 };
		    {
/* #line 2850 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree itype = TREE_TYPE (type);
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[0])
			        || !single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2851, __FILE__, __LINE__);
			res_op->set_op (COMPLEX_EXPR, type, 2);
			{
			  tree ops1[1], res;
			  ops1[0] = captures[2];
			  if (itype != TREE_TYPE (ops1[0])
			      && !useless_type_conversion_p (itype, TREE_TYPE (ops1[0])))
			    {
			      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, itype, ops1[0]);
			      gimple_resimplify1 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			    }
			  else
			    res = ops1[0];
			  res_op->ops[0] = res;
			}
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[3];
			    if (itype != TREE_TYPE (ops2[0])
			        && !useless_type_conversion_p (itype, TREE_TYPE (ops2[0])))
			      {
				gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, itype, ops2[0]);
				gimple_resimplify1 (lseq, &tem_op, valueize);
				res = maybe_push_res_to_seq (&tem_op, lseq);
				if (!res) return false;
			      }
			    else
			      res = ops2[0];
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_BSWAP16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP16:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2860 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[1] ATTRIBUTE_UNUSED = { o30 };
				    if (gimple_simplify_211 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP16:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP16))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP16:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP16))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP16:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP16))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP16:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP16))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP16:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP16))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP16:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP16))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_BSWAP16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2857 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_37 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP16))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_BSWAP32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP32:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2860 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[1] ATTRIBUTE_UNUSED = { o30 };
				    if (gimple_simplify_211 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP32:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP32))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP32:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP32))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP32:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP32))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP32:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP32))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP32:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP32))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP32:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP32))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_BSWAP32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2857 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_37 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP32))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_BSWAP64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP64:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2860 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[1] ATTRIBUTE_UNUSED = { o30 };
				    if (gimple_simplify_211 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP64:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP64))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP64:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_BUILT_IN_BSWAP64))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP64:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP64))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP64:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_BUILT_IN_BSWAP64))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP64:
			        {
				  tree o30 = gimple_call_arg (def, 0);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP64))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_BSWAP64:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2864 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				    if (gimple_simplify_212 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_BUILT_IN_BSWAP64))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_BSWAP64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 2857 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_37 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_BSWAP64))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LOGF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXPF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP2F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_POW10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_SQRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_CBRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_POWF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LOG (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_POW10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_CBRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_POW))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LOGL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXPL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP2L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_POW10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_SQRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_CBRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_POWL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_LOG (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_LOG, CFN_POW))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LOG2F (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXP2F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXPF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXPF) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_POW10F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_SQRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_CBRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_POWF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LOG2 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_POW10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_CBRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_POW))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LOG2L (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXP2L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXPL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXPL) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_POW10L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_SQRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_CBRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_POWL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_LOG2 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG2, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_EXP10) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG2, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG2, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_LOG2, CFN_POW))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LOG10F (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXP10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXPF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXPF) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP2F) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_SQRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_CBRTF) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_POWF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LOG10 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_CBRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_POW))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LOG10L (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXP10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXPL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXPL) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_EXP2L) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_SQRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_BUILT_IN_CBRTL) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_POWL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_LOG10 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4257, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_EXP) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG10, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4271 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_EXP2) { CASE_CFN_EXP: x = build_real_truncate (type, dconst_e ());
 break;
 CASE_CFN_EXP2: x = build_real (type, dconst2);
 break;
 CASE_CFN_EXP10: CASE_CFN_POW10: { REAL_VALUE_TYPE dconst10;
 real_from_integer (&dconst10, VOIDmode, 10, SIGNED);
 x = build_real (type, dconst10);
 } break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4296, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				{
				  tree ops1[1], res;
				  ops1[0] =  x;
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG10, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[0] = res;
				}
				res_op->ops[1] = captures[0];
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
/* #line 4304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (SCALAR_FLOAT_TYPE_P (type))
			  {
			    {
/* #line 4305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree x;
 switch (CFN_SQRT) { CASE_CFN_SQRT: x = build_real (type, dconsthalf);
 break;
 CASE_CFN_CBRT: x = build_real_truncate (type, dconst_third ());
 break;
 default: gcc_unreachable ();
 }				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4321, __FILE__, __LINE__);
				res_op->set_op (MULT_EXPR, type, 2);
				res_op->ops[0] =  x;
				{
				  tree ops1[1], res;
				  ops1[0] = captures[0];
				  gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG10, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			    }
			  }
		      }
		  }
	          break;
	        }
	      case CFN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
		    if (gimple_simplify_154 (res_op, seq, valueize, type, captures, CFN_LOG10, CFN_POW))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_EXPF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOGF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_EXP (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOG:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_EXPL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOGL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_EXP (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_LOG:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_EXP2F (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOG2F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_EXP2 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOG2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_EXP2L (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOG2L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_EXP2 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_LOG2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_EXP10F (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOG10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_EXP10 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOG10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_EXP10L (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOG10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_EXP10 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_LOG10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POW10F (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOG10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POW10 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOG10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POW10L (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_LOG10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4261, __FILE__, __LINE__);
			tree tem;
			tem = captures[0];
			res_op->set_value (tem);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SQRTF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXPF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXPF, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW10F, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4587, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POWF, type, 2);
			res_op->ops[0] = captures[0];
			res_op->ops[1] =  build_real (type, dconst_quarter ());
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4591, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POWF, type, 2);
			res_op->ops[0] = captures[0];
			res_op->ops[1] =  build_real_truncate (type, dconst_sixth ());
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4603, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POWF, type, 2);
			{
			  tree ops1[1], res;
			  ops1[0] = captures[0];
			  gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			{
			  tree ops1[2], res;
			  ops1[0] = captures[1];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SQRT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP2, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP10, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW10, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4587, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW, type, 2);
			res_op->ops[0] = captures[0];
			res_op->ops[1] =  build_real (type, dconst_quarter ());
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4591, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW, type, 2);
			res_op->ops[0] = captures[0];
			res_op->ops[1] =  build_real_truncate (type, dconst_sixth ());
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4603, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW, type, 2);
			{
			  tree ops1[1], res;
			  ops1[0] = captures[0];
			  gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			{
			  tree ops1[2], res;
			  ops1[0] = captures[1];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SQRTL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXPL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXPL, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW10L, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4587, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POWL, type, 2);
			res_op->ops[0] = captures[0];
			res_op->ops[1] =  build_real (type, dconst_quarter ());
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4591, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POWL, type, 2);
			res_op->ops[0] = captures[0];
			res_op->ops[1] =  build_real_truncate (type, dconst_sixth ());
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4603, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POWL, type, 2);
			{
			  tree ops1[1], res;
			  ops1[0] = captures[0];
			  gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			{
			  tree ops1[2], res;
			  ops1[0] = captures[1];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_SQRT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_EXP, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_EXP2, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4385, __FILE__, __LINE__);
			res_op->set_op (CFN_EXP10, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4587, __FILE__, __LINE__);
			res_op->set_op (CFN_POW, type, 2);
			res_op->ops[0] = captures[0];
			res_op->ops[1] =  build_real (type, dconst_quarter ());
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4603, __FILE__, __LINE__);
			res_op->set_op (CFN_POW, type, 2);
			{
			  tree ops1[1], res;
			  ops1[0] = captures[0];
			  gimple_match_op tem_op (res_op->cond.any_else (), ABS_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			{
			  tree ops1[2], res;
			  ops1[0] = captures[1];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CBRTF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXPF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXPF, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW10F, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4595, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POWF, type, 2);
			res_op->ops[0] = captures[0];
			res_op->ops[1] =  build_real_truncate (type, dconst_sixth ());
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4599, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POWF, type, 2);
			    res_op->ops[0] = captures[0];
			    res_op->ops[1] =  build_real_truncate (type, dconst_ninth ());
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4607, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POWF, type, 2);
			    res_op->ops[0] = captures[0];
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] =  build_real_truncate (type, dconst_third ());
			      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      gimple_resimplify2 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[1] = res;
			    }
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CBRT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP2, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP10, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW10, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4595, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW, type, 2);
			res_op->ops[0] = captures[0];
			res_op->ops[1] =  build_real_truncate (type, dconst_sixth ());
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4599, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POW, type, 2);
			    res_op->ops[0] = captures[0];
			    res_op->ops[1] =  build_real_truncate (type, dconst_ninth ());
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4607, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POW, type, 2);
			    res_op->ops[0] = captures[0];
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] =  build_real_truncate (type, dconst_third ());
			      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      gimple_resimplify2 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[1] = res;
			    }
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CBRTL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_EXPL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXPL, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4389, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW10L, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] =  build_real_truncate (type, dconst_third ());
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4595, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POWL, type, 2);
			res_op->ops[0] = captures[0];
			res_op->ops[1] =  build_real_truncate (type, dconst_sixth ());
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4599, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POWL, type, 2);
			    res_op->ops[0] = captures[0];
			    res_op->ops[1] =  build_real_truncate (type, dconst_ninth ());
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4607, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POWL, type, 2);
			    res_op->ops[0] = captures[0];
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] =  build_real_truncate (type, dconst_third ());
			      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      gimple_resimplify2 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[1] = res;
			    }
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TANF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ATANF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_62 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_ATANF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TAN (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ATAN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_62 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_ATAN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TANL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ATANL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_62 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_ATANL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_TAN (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_ATAN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_62 (res_op, seq, valueize, type, captures, CFN_TAN, CFN_ATAN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SINF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ATANF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_159 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_ATANF, CFN_BUILT_IN_SQRTF, CFN_BUILT_IN_COPYSIGNF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SIN (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ATAN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_159 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_ATAN, CFN_BUILT_IN_SQRT, CFN_BUILT_IN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SINL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ATANL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_159 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_ATANL, CFN_BUILT_IN_SQRTL, CFN_BUILT_IN_COPYSIGNL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_SIN (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_ATAN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_159 (res_op, seq, valueize, type, captures, CFN_SIN, CFN_ATAN, CFN_SQRT, CFN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SINHF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ATANHF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4441 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_103 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINHF, CFN_BUILT_IN_ATANHF, CFN_BUILT_IN_SQRTF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SINH (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ATANH:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4441 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_103 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINH, CFN_BUILT_IN_ATANH, CFN_BUILT_IN_SQRT))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SINHL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ATANHL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4441 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_103 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINHL, CFN_BUILT_IN_ATANHL, CFN_BUILT_IN_SQRTL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_SINH (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_ATANH:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4441 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
		    if (gimple_simplify_103 (res_op, seq, valueize, type, captures, CFN_SINH, CFN_ATANH, CFN_SQRT))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TRUNCF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_TRUNCF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TRUNC (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNC, CFN_BUILT_IN_TRUNCF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_TRUNC:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNC))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNC))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TRUNCL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4666 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_200 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL, CFN_BUILT_IN_TRUNC))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL, CFN_BUILT_IN_TRUNCF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_TRUNCL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCL))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TRUNCF16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_TRUNCF16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF16))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF16))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TRUNCF32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_TRUNCF32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF32))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF32))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TRUNCF64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_TRUNCF64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF64))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF64))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TRUNCF128 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_TRUNCF128:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF128))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF128))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TRUNCF32X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_TRUNCF32X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF32X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF32X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TRUNCF64X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_TRUNCF64X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF64X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF64X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_TRUNCF128X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_TRUNCF128X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF128X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TRUNCF128X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_TRUNC (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_TRUNC:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_TRUNC))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_TRUNC))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FLOORF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FLOORF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF, CFN_BUILT_IN_TRUNCF))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FLOOR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_FLOORF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FLOOR:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOOR, CFN_BUILT_IN_TRUNC))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FLOORL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4666 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_200 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOOR))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_FLOORF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FLOORL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORL, CFN_BUILT_IN_TRUNCL))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FLOORF16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FLOORF16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF16))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF16))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF16, CFN_BUILT_IN_TRUNCF16))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FLOORF32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FLOORF32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32, CFN_BUILT_IN_TRUNCF32))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FLOORF64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FLOORF64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64, CFN_BUILT_IN_TRUNCF64))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FLOORF128 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FLOORF128:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128, CFN_BUILT_IN_TRUNCF128))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FLOORF32X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FLOORF32X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32X))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF32X, CFN_BUILT_IN_TRUNCF32X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FLOORF64X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FLOORF64X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64X))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF64X, CFN_BUILT_IN_TRUNCF64X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FLOORF128X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_FLOORF128X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128X))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FLOORF128X, CFN_BUILT_IN_TRUNCF128X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_FLOOR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_FLOOR:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_FLOOR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_FLOOR))
        return true;
    }
  }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4642 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_55 (res_op, seq, valueize, type, captures, CFN_FLOOR, CFN_TRUNC))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEILF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEILF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEIL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEIL, CFN_BUILT_IN_CEILF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEIL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEIL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEIL))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEILL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4666 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_200 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_CEIL))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILL, CFN_BUILT_IN_CEILF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEILL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILL))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEILF16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEILF16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF16))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF16))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEILF32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEILF32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF32))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF32))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEILF64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEILF64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF64))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF64))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEILF128 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEILF128:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF128))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF128))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEILF32X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEILF32X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF32X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF32X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEILF64X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEILF64X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF64X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF64X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEILF128X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_CEILF128X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF128X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_CEILF128X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_CEIL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_CEIL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_CEIL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_CEIL))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ROUNDF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ROUNDF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ROUND (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUND, CFN_BUILT_IN_ROUNDF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ROUND:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUND))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUND))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ROUNDL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4666 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_200 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL, CFN_BUILT_IN_ROUND))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL, CFN_BUILT_IN_ROUNDF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ROUNDL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDL))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ROUNDF16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ROUNDF16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF16))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF16))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ROUNDF32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ROUNDF32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF32))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF32))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ROUNDF64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ROUNDF64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF64))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF64))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ROUNDF128 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ROUNDF128:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF128))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF128))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ROUNDF32X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ROUNDF32X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF32X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF32X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ROUNDF64X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ROUNDF64X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF64X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF64X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ROUNDF128X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_ROUNDF128X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF128X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ROUNDF128X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_ROUND (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_ROUND:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_ROUND))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_ROUND))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_NEARBYINTF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_NEARBYINTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_NEARBYINT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINT, CFN_BUILT_IN_NEARBYINTF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_NEARBYINT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINT))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINT))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_NEARBYINTL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4666 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_200 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL, CFN_BUILT_IN_NEARBYINT))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL, CFN_BUILT_IN_NEARBYINTF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_NEARBYINTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTL))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_NEARBYINTF16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_NEARBYINTF16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF16))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF16))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_NEARBYINTF32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_NEARBYINTF32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF32))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF32))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_NEARBYINTF64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_NEARBYINTF64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF64))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF64))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_NEARBYINTF128 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_NEARBYINTF128:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF128))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF128))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_NEARBYINTF32X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_NEARBYINTF32X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF32X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF32X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_NEARBYINTF64X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_NEARBYINTF64X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF64X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF64X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_NEARBYINTF128X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_NEARBYINTF128X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF128X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_NEARBYINTF128X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_NEARBYINT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_NEARBYINT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_NEARBYINT))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_NEARBYINT))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_RINTF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_RINTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_RINT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINT, CFN_BUILT_IN_RINTF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_RINT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINT))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINT))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_RINTL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4666 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_200 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTL, CFN_BUILT_IN_RINT))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4688 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_286 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTL, CFN_BUILT_IN_RINTF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_RINTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTL))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_RINTF16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_RINTF16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF16))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF16))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_RINTF32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_RINTF32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF32))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF32))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_RINTF64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_RINTF64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF64))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF64))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_RINTF128 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_RINTF128:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF128))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF128))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_RINTF32X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_RINTF32X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF32X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF32X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_RINTF64X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_RINTF64X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF64X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF64X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_RINTF128X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_RINTF128X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF128X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_RINTF128X))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_RINT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_RINT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4469 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		    if (gimple_simplify_31 (res_op, seq, valueize, type, captures, CFN_RINT))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4474 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_184 (res_op, seq, valueize, type, captures, CFN_RINT))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEXPF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (gimple_compositional_complex (op0, valueize))
    {
      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (flag_unsafe_math_optimizations && canonicalize_math_p ())
	  {
/* #line 4637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    if (targetm.libc_has_function (function_c99_math_complex))
	      {
		gimple_seq *lseq = seq;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4638, __FILE__, __LINE__);
		res_op->set_op (COMPLEX_EXPR, type, 2);
		{
		  tree ops1[2], res;
		  {
		    tree ops2[1], res;
		    {
		      tree ops3[1], res;
		      ops3[0] = captures[0];
		      gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops3[0])), ops3[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      ops2[0] = res;
		    }
		    gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXPF, TREE_TYPE (ops2[0]), ops2[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    captures[1] = res;
		  }
		  ops1[0] = captures[1];
		  {
		    tree ops2[1], res;
		    {
		      tree ops3[1], res;
		      {
			tree ops4[1], res;
			ops4[0] = captures[0];
			gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops4[0])), ops4[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops3[0] = res;
		      }
		      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CEXPIF, type, ops3[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      captures[2] = res;
		    }
		    ops2[0] = captures[2];
		    gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    ops1[1] = res;
		  }
		  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  res_op->ops[0] = res;
		}
		{
		  tree ops1[2], res;
		  ops1[0] = captures[1];
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[2];
		    gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    ops1[1] = res;
		  }
		  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  res_op->ops[1] = res;
		}
		gimple_resimplify2 (lseq, res_op, valueize);
		return true;
	      }
	  }
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEXP (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (gimple_compositional_complex (op0, valueize))
    {
      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (flag_unsafe_math_optimizations && canonicalize_math_p ())
	  {
/* #line 4637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    if (targetm.libc_has_function (function_c99_math_complex))
	      {
		gimple_seq *lseq = seq;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4638, __FILE__, __LINE__);
		res_op->set_op (COMPLEX_EXPR, type, 2);
		{
		  tree ops1[2], res;
		  {
		    tree ops2[1], res;
		    {
		      tree ops3[1], res;
		      ops3[0] = captures[0];
		      gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops3[0])), ops3[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      ops2[0] = res;
		    }
		    gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP, TREE_TYPE (ops2[0]), ops2[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    captures[1] = res;
		  }
		  ops1[0] = captures[1];
		  {
		    tree ops2[1], res;
		    {
		      tree ops3[1], res;
		      {
			tree ops4[1], res;
			ops4[0] = captures[0];
			gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops4[0])), ops4[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops3[0] = res;
		      }
		      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CEXPI, type, ops3[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      captures[2] = res;
		    }
		    ops2[0] = captures[2];
		    gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    ops1[1] = res;
		  }
		  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  res_op->ops[0] = res;
		}
		{
		  tree ops1[2], res;
		  ops1[0] = captures[1];
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[2];
		    gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    ops1[1] = res;
		  }
		  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  res_op->ops[1] = res;
		}
		gimple_resimplify2 (lseq, res_op, valueize);
		return true;
	      }
	  }
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CEXPL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (gimple_compositional_complex (op0, valueize))
    {
      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (flag_unsafe_math_optimizations && canonicalize_math_p ())
	  {
/* #line 4637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    if (targetm.libc_has_function (function_c99_math_complex))
	      {
		gimple_seq *lseq = seq;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4638, __FILE__, __LINE__);
		res_op->set_op (COMPLEX_EXPR, type, 2);
		{
		  tree ops1[2], res;
		  {
		    tree ops2[1], res;
		    {
		      tree ops3[1], res;
		      ops3[0] = captures[0];
		      gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops3[0])), ops3[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      ops2[0] = res;
		    }
		    gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXPL, TREE_TYPE (ops2[0]), ops2[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    captures[1] = res;
		  }
		  ops1[0] = captures[1];
		  {
		    tree ops2[1], res;
		    {
		      tree ops3[1], res;
		      {
			tree ops4[1], res;
			ops4[0] = captures[0];
			gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops4[0])), ops4[0]);
			gimple_resimplify1 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			ops3[0] = res;
		      }
		      gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CEXPIL, type, ops3[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      captures[2] = res;
		    }
		    ops2[0] = captures[2];
		    gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    ops1[1] = res;
		  }
		  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  res_op->ops[0] = res;
		}
		{
		  tree ops1[2], res;
		  ops1[0] = captures[1];
		  {
		    tree ops2[1], res;
		    ops2[0] = captures[2];
		    gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops2[0])), ops2[0]);
		    gimple_resimplify1 (lseq, &tem_op, valueize);
		    res = maybe_push_res_to_seq (&tem_op, lseq);
		    if (!res) return false;
		    ops1[1] = res;
		  }
		  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		  gimple_resimplify2 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  res_op->ops[1] = res;
		}
		gimple_resimplify2 (lseq, res_op, valueize);
		return true;
	      }
	  }
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_IFLOORL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IFLOORL, CFN_BUILT_IN_IFLOOR))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IFLOORL, CFN_BUILT_IN_IFLOORF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4717, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LFLOORL, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LFLOORL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LFLOORL, CFN_BUILT_IN_LFLOOR))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LFLOORL, CFN_BUILT_IN_LFLOORF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4717, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLFLOORL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLFLOORL, CFN_BUILT_IN_LLFLOOR))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLFLOORL, CFN_BUILT_IN_LLFLOORF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4717, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LFLOORL, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ICEILL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ICEILL, CFN_BUILT_IN_ICEIL))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ICEILL, CFN_BUILT_IN_ICEILF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LCEILL, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LCEILL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LCEILL, CFN_BUILT_IN_LCEIL))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LCEILL, CFN_BUILT_IN_LCEILF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLCEILL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLCEILL, CFN_BUILT_IN_LLCEIL))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLCEILL, CFN_BUILT_IN_LLCEILF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LCEILL, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_IROUNDL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IROUNDL, CFN_BUILT_IN_IROUND))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IROUNDL, CFN_BUILT_IN_IROUNDF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LROUNDL, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LROUNDL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LROUNDL, CFN_BUILT_IN_LROUND))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LROUNDL, CFN_BUILT_IN_LROUNDF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLROUNDL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLROUNDL, CFN_BUILT_IN_LLROUND))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLROUNDL, CFN_BUILT_IN_LLROUNDF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LROUNDL, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_IRINTL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IRINTL, CFN_BUILT_IN_IRINT))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IRINTL, CFN_BUILT_IN_IRINTF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
/* #line 4727 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!flag_errno_math)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4732, __FILE__, __LINE__);
	      res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	      res_op->ops[0] = captures[0];
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LRINTL, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LRINTL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LRINTL, CFN_BUILT_IN_LRINT))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LRINTL, CFN_BUILT_IN_LRINTF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
/* #line 4727 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!flag_errno_math)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4732, __FILE__, __LINE__);
	      res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	      res_op->ops[0] = captures[0];
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLRINTL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_double_value_p (o20, valueize))
		    {
		      {
/* #line 4697 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_164 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLRINTL, CFN_BUILT_IN_LLRINT))
			  return true;
		      }
		    }
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLRINTL, CFN_BUILT_IN_LLRINTF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
/* #line 4727 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!flag_errno_math)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4732, __FILE__, __LINE__);
	      res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	      res_op->ops[0] = captures[0];
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LRINTL, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_IFLOOR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IFLOOR, CFN_BUILT_IN_IFLOORF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4717, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LFLOOR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LFLOOR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LFLOOR, CFN_BUILT_IN_LFLOORF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4717, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLFLOOR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLFLOOR, CFN_BUILT_IN_LLFLOORF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (tree_expr_nonnegative_p (op0))
  {
    {
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4717, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LFLOOR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ICEIL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_ICEIL, CFN_BUILT_IN_ICEILF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LCEIL, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LCEIL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LCEIL, CFN_BUILT_IN_LCEILF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLCEIL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLCEIL, CFN_BUILT_IN_LLCEILF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LCEIL, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_IROUND (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IROUND, CFN_BUILT_IN_IROUNDF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LROUND, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LROUND (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LROUND, CFN_BUILT_IN_LROUNDF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLROUND (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLROUND, CFN_BUILT_IN_LLROUNDF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	  res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LROUND, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_IRINT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_IRINT, CFN_BUILT_IN_IRINTF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
/* #line 4727 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!flag_errno_math)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4732, __FILE__, __LINE__);
	      res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	      res_op->ops[0] = captures[0];
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LRINT, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LRINT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LRINT, CFN_BUILT_IN_LRINTF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
/* #line 4727 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!flag_errno_math)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4732, __FILE__, __LINE__);
	      res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	      res_op->ops[0] = captures[0];
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLRINT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (gimple_float_value_p (o20, valueize))
		    {
		      {
/* #line 4707 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_78 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_LLRINT, CFN_BUILT_IN_LLRINTF))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_valued_real_p (op0))
  {
    {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (canonicalize_math_p ())
	{
/* #line 4727 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!flag_errno_math)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4732, __FILE__, __LINE__);
	      res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	      res_op->ops[0] = captures[0];
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LRINT, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_IFLOORF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (tree_expr_nonnegative_p (op0))
    {
      {
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4717, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LFLOORF, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LFLOORF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (tree_expr_nonnegative_p (op0))
    {
      {
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4717, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLFLOORF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (tree_expr_nonnegative_p (op0))
    {
      {
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4712 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4717, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LFLOORF, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_ICEILF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LCEILF, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LCEILF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLCEILF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LCEILF, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_IROUNDF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LROUNDF, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LROUNDF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLROUNDF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4726, __FILE__, __LINE__);
	    res_op->set_op (FIX_TRUNC_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LROUNDF, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_IRINTF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
/* #line 4727 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    if (!flag_errno_math)
	      {
		gimple_seq *lseq = seq;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4732, __FILE__, __LINE__);
		res_op->set_op (FIX_TRUNC_EXPR, type, 1);
		res_op->ops[0] = captures[0];
		gimple_resimplify1 (lseq, res_op, valueize);
		return true;
	      }
	  }
      }
    }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4740 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4744, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LRINTF, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LRINTF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
/* #line 4727 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    if (!flag_errno_math)
	      {
		gimple_seq *lseq = seq;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4732, __FILE__, __LINE__);
		res_op->set_op (FIX_TRUNC_EXPR, type, 1);
		res_op->ops[0] = captures[0];
		gimple_resimplify1 (lseq, res_op, valueize);
		return true;
	      }
	  }
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LLRINTF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (integer_valued_real_p (op0))
    {
      {
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4719 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (canonicalize_math_p ())
	  {
/* #line 4727 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    if (!flag_errno_math)
	      {
		gimple_seq *lseq = seq;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4732, __FILE__, __LINE__);
		res_op->set_op (FIX_TRUNC_EXPR, type, 1);
		res_op->ops[0] = captures[0];
		gimple_resimplify1 (lseq, res_op, valueize);
		return true;
	      }
	  }
      }
    }
  {
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4734 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (canonicalize_math_p ())
      {
/* #line 4747 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TYPE_PRECISION (long_long_integer_type_node) == TYPE_PRECISION (long_integer_type_node))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4751, __FILE__, __LINE__);
	    res_op->set_op (CFN_BUILT_IN_LRINTF, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CPROJF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  {
/* #line 4756 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4756 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (!HONOR_INFINITIES (type))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4757, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case COMPLEX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			if (tree_expr_nonnegative_p (o21))
			  {
			    {
/* #line 4763 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4763 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinf (TREE_REAL_CST_PTR (captures[0])))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4764, __FILE__, __LINE__);
				  tree tem;
				  tem =  build_complex_inf (type, false);
				  res_op->set_value (tem);
				  return true;
				}
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			{
/* #line 4769 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4769 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (real_isinf (TREE_REAL_CST_PTR (captures[1])))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4770, __FILE__, __LINE__);
			      tree tem;
			      tem =  build_complex_inf (type, TREE_REAL_CST_PTR (captures[1])->sign);
			      res_op->set_value (tem);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CPROJ (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  {
/* #line 4756 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4756 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (!HONOR_INFINITIES (type))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4757, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case COMPLEX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			if (tree_expr_nonnegative_p (o21))
			  {
			    {
/* #line 4763 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4763 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinf (TREE_REAL_CST_PTR (captures[0])))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4764, __FILE__, __LINE__);
				  tree tem;
				  tem =  build_complex_inf (type, false);
				  res_op->set_value (tem);
				  return true;
				}
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			{
/* #line 4769 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4769 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (real_isinf (TREE_REAL_CST_PTR (captures[1])))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4770, __FILE__, __LINE__);
			      tree tem;
			      tem =  build_complex_inf (type, TREE_REAL_CST_PTR (captures[1])->sign);
			      res_op->set_value (tem);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_CPROJL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  {
/* #line 4756 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4756 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (!HONOR_INFINITIES (type))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4757, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case COMPLEX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			if (tree_expr_nonnegative_p (o21))
			  {
			    {
/* #line 4763 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4763 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinf (TREE_REAL_CST_PTR (captures[0])))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4764, __FILE__, __LINE__);
				  tree tem;
				  tem =  build_complex_inf (type, false);
				  res_op->set_value (tem);
				  return true;
				}
			    }
			  }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			{
/* #line 4769 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 4769 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (real_isinf (TREE_REAL_CST_PTR (captures[1])))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4770, __FILE__, __LINE__);
			      tree tem;
			      tem =  build_complex_inf (type, TREE_REAL_CST_PTR (captures[1])->sign);
			      res_op->set_value (tem);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SIGNBITF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (tree_expr_nonnegative_p (op0))
    {
      {
/* #line 4907 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4907, __FILE__, __LINE__);
	tree tem;
	tem =  integer_zero_node;
	res_op->set_value (tem);
	return true;
      }
    }
  {
/* #line 4912 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4912 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (!HONOR_SIGNED_ZEROS (captures[0]))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4913, __FILE__, __LINE__);
	res_op->set_op (NOP_EXPR, type, 1);
	{
	  tree ops1[2], res;
	  ops1[0] = captures[0];
	  ops1[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
	  gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, boolean_type_node, ops1[0], ops1[1]);
	  gimple_resimplify2 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  res_op->ops[0] = res;
	}
	gimple_resimplify1 (lseq, res_op, valueize);
	return true;
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SIGNBIT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (tree_expr_nonnegative_p (op0))
    {
      {
/* #line 4907 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4907, __FILE__, __LINE__);
	tree tem;
	tem =  integer_zero_node;
	res_op->set_value (tem);
	return true;
      }
    }
  {
/* #line 4912 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4912 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (!HONOR_SIGNED_ZEROS (captures[0]))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4913, __FILE__, __LINE__);
	res_op->set_op (NOP_EXPR, type, 1);
	{
	  tree ops1[2], res;
	  ops1[0] = captures[0];
	  ops1[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
	  gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, boolean_type_node, ops1[0], ops1[1]);
	  gimple_resimplify2 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  res_op->ops[0] = res;
	}
	gimple_resimplify1 (lseq, res_op, valueize);
	return true;
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SIGNBITL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  if (tree_expr_nonnegative_p (op0))
    {
      {
/* #line 4907 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4907, __FILE__, __LINE__);
	tree tem;
	tem =  integer_zero_node;
	res_op->set_value (tem);
	return true;
      }
    }
  {
/* #line 4912 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4912 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (!HONOR_SIGNED_ZEROS (captures[0]))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4913, __FILE__, __LINE__);
	res_op->set_op (NOP_EXPR, type, 1);
	{
	  tree ops1[2], res;
	  ops1[0] = captures[0];
	  ops1[1] =  build_real (TREE_TYPE (captures[0]), dconst0);
	  gimple_match_op tem_op (res_op->cond.any_else (), LT_EXPR, boolean_type_node, ops1[0], ops1[1]);
	  gimple_resimplify2 (lseq, &tem_op, valueize);
	  res = maybe_push_res_to_seq (&tem_op, lseq);
	  if (!res) return false;
	  res_op->ops[0] = res;
	}
	gimple_resimplify1 (lseq, res_op, valueize);
	return true;
      }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POPCOUNT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  {
/* #line 5161 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
    if (gimple_simplify_288 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNT))
      return true;
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POPCOUNTL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  {
/* #line 5161 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
    if (gimple_simplify_288 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTL))
      return true;
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POPCOUNTLL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  {
/* #line 5161 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
    if (gimple_simplify_288 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTLL))
      return true;
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POPCOUNTIMAX (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  {
/* #line 5161 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
    if (gimple_simplify_288 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTIMAX))
      return true;
  }
  return false;
}

static bool
gimple_simplify_CFN_REDUC_PLUS (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      switch (TREE_CODE (o20))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o20))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case BIT_AND_EXPR:
				    {
				      tree o30 = gimple_assign_rhs1 (def);
				      o30 = do_valueize (valueize, o30);
				      tree o31 = gimple_assign_rhs2 (def);
				      o31 = do_valueize (valueize, o31);
				      if (tree_swap_operands_p (o30, o31))
				        std::swap (o30, o31);
				      switch (TREE_CODE (o31))
				        {
					case VECTOR_CST:
					  {
					    {
/* #line 5320 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
					      if (gimple_simplify_316 (res_op, seq, valueize, type, captures, CFN_REDUC_PLUS))
					        return true;
					    }
					    break;
					  }
				        default:;
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case VECTOR_CST:
		      {
			{
/* #line 5320 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			  if (gimple_simplify_316 (res_op, seq, valueize, type, captures, CFN_REDUC_PLUS))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_REDUC_IOR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      switch (TREE_CODE (o20))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o20))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case BIT_AND_EXPR:
				    {
				      tree o30 = gimple_assign_rhs1 (def);
				      o30 = do_valueize (valueize, o30);
				      tree o31 = gimple_assign_rhs2 (def);
				      o31 = do_valueize (valueize, o31);
				      if (tree_swap_operands_p (o30, o31))
				        std::swap (o30, o31);
				      switch (TREE_CODE (o31))
				        {
					case VECTOR_CST:
					  {
					    {
/* #line 5320 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
					      if (gimple_simplify_316 (res_op, seq, valueize, type, captures, CFN_REDUC_IOR))
					        return true;
					    }
					    break;
					  }
				        default:;
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case VECTOR_CST:
		      {
			{
/* #line 5320 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			  if (gimple_simplify_316 (res_op, seq, valueize, type, captures, CFN_REDUC_IOR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_REDUC_XOR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      switch (TREE_CODE (o20))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o20))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case BIT_AND_EXPR:
				    {
				      tree o30 = gimple_assign_rhs1 (def);
				      o30 = do_valueize (valueize, o30);
				      tree o31 = gimple_assign_rhs2 (def);
				      o31 = do_valueize (valueize, o31);
				      if (tree_swap_operands_p (o30, o31))
				        std::swap (o30, o31);
				      switch (TREE_CODE (o31))
				        {
					case VECTOR_CST:
					  {
					    {
/* #line 5320 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
					      if (gimple_simplify_316 (res_op, seq, valueize, type, captures, CFN_REDUC_XOR))
					        return true;
					    }
					    break;
					  }
				        default:;
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case VECTOR_CST:
		      {
			{
/* #line 5320 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			  if (gimple_simplify_316 (res_op, seq, valueize, type, captures, CFN_REDUC_XOR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper code, const tree type, tree op0)
{
  switch (code.get_rep())
    {
    case ABS_EXPR:
      return gimple_simplify_ABS_EXPR (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_COSF:
      return gimple_simplify_CFN_BUILT_IN_COSF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_COS:
      return gimple_simplify_CFN_BUILT_IN_COS (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_COSL:
      return gimple_simplify_CFN_BUILT_IN_COSL (res_op, seq, valueize, code, type, op0);
    case -CFN_COS:
      return gimple_simplify_CFN_COS (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_COSHF:
      return gimple_simplify_CFN_BUILT_IN_COSHF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_COSH:
      return gimple_simplify_CFN_BUILT_IN_COSH (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_COSHL:
      return gimple_simplify_CFN_BUILT_IN_COSHL (res_op, seq, valueize, code, type, op0);
    case -CFN_COSH:
      return gimple_simplify_CFN_COSH (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CCOSF:
      return gimple_simplify_CFN_BUILT_IN_CCOSF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CCOS:
      return gimple_simplify_CFN_BUILT_IN_CCOS (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CCOSL:
      return gimple_simplify_CFN_BUILT_IN_CCOSL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CCOSHF:
      return gimple_simplify_CFN_BUILT_IN_CCOSHF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CCOSH:
      return gimple_simplify_CFN_BUILT_IN_CCOSH (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CCOSHL:
      return gimple_simplify_CFN_BUILT_IN_CCOSHL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CABSF:
      return gimple_simplify_CFN_BUILT_IN_CABSF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CABS:
      return gimple_simplify_CFN_BUILT_IN_CABS (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CABSL:
      return gimple_simplify_CFN_BUILT_IN_CABSL (res_op, seq, valueize, code, type, op0);
    case BIT_NOT_EXPR:
      return gimple_simplify_BIT_NOT_EXPR (res_op, seq, valueize, code, type, op0);
    case ABSU_EXPR:
      return gimple_simplify_ABSU_EXPR (res_op, seq, valueize, code, type, op0);
    case NEGATE_EXPR:
      return gimple_simplify_NEGATE_EXPR (res_op, seq, valueize, code, type, op0);
    CASE_CONVERT:
      return gimple_simplify_CONVERT_EXPR (res_op, seq, valueize, code, type, op0);
    case VIEW_CONVERT_EXPR:
      return gimple_simplify_VIEW_CONVERT_EXPR (res_op, seq, valueize, code, type, op0);
    case FLOAT_EXPR:
      return gimple_simplify_FLOAT_EXPR (res_op, seq, valueize, code, type, op0);
    case FIX_TRUNC_EXPR:
      return gimple_simplify_FIX_TRUNC_EXPR (res_op, seq, valueize, code, type, op0);
    case PAREN_EXPR:
      return gimple_simplify_PAREN_EXPR (res_op, seq, valueize, code, type, op0);
    case REALPART_EXPR:
      return gimple_simplify_REALPART_EXPR (res_op, seq, valueize, code, type, op0);
    case IMAGPART_EXPR:
      return gimple_simplify_IMAGPART_EXPR (res_op, seq, valueize, code, type, op0);
    case CONJ_EXPR:
      return gimple_simplify_CONJ_EXPR (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_BSWAP16:
      return gimple_simplify_CFN_BUILT_IN_BSWAP16 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_BSWAP32:
      return gimple_simplify_CFN_BUILT_IN_BSWAP32 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_BSWAP64:
      return gimple_simplify_CFN_BUILT_IN_BSWAP64 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LOGF:
      return gimple_simplify_CFN_BUILT_IN_LOGF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LOG:
      return gimple_simplify_CFN_BUILT_IN_LOG (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LOGL:
      return gimple_simplify_CFN_BUILT_IN_LOGL (res_op, seq, valueize, code, type, op0);
    case -CFN_LOG:
      return gimple_simplify_CFN_LOG (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LOG2F:
      return gimple_simplify_CFN_BUILT_IN_LOG2F (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LOG2:
      return gimple_simplify_CFN_BUILT_IN_LOG2 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LOG2L:
      return gimple_simplify_CFN_BUILT_IN_LOG2L (res_op, seq, valueize, code, type, op0);
    case -CFN_LOG2:
      return gimple_simplify_CFN_LOG2 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LOG10F:
      return gimple_simplify_CFN_BUILT_IN_LOG10F (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LOG10:
      return gimple_simplify_CFN_BUILT_IN_LOG10 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LOG10L:
      return gimple_simplify_CFN_BUILT_IN_LOG10L (res_op, seq, valueize, code, type, op0);
    case -CFN_LOG10:
      return gimple_simplify_CFN_LOG10 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_EXPF:
      return gimple_simplify_CFN_BUILT_IN_EXPF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_EXP:
      return gimple_simplify_CFN_BUILT_IN_EXP (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_EXPL:
      return gimple_simplify_CFN_BUILT_IN_EXPL (res_op, seq, valueize, code, type, op0);
    case -CFN_EXP:
      return gimple_simplify_CFN_EXP (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_EXP2F:
      return gimple_simplify_CFN_BUILT_IN_EXP2F (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_EXP2:
      return gimple_simplify_CFN_BUILT_IN_EXP2 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_EXP2L:
      return gimple_simplify_CFN_BUILT_IN_EXP2L (res_op, seq, valueize, code, type, op0);
    case -CFN_EXP2:
      return gimple_simplify_CFN_EXP2 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_EXP10F:
      return gimple_simplify_CFN_BUILT_IN_EXP10F (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_EXP10:
      return gimple_simplify_CFN_BUILT_IN_EXP10 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_EXP10L:
      return gimple_simplify_CFN_BUILT_IN_EXP10L (res_op, seq, valueize, code, type, op0);
    case -CFN_EXP10:
      return gimple_simplify_CFN_EXP10 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_POW10F:
      return gimple_simplify_CFN_BUILT_IN_POW10F (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_POW10:
      return gimple_simplify_CFN_BUILT_IN_POW10 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_POW10L:
      return gimple_simplify_CFN_BUILT_IN_POW10L (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SQRTF:
      return gimple_simplify_CFN_BUILT_IN_SQRTF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SQRT:
      return gimple_simplify_CFN_BUILT_IN_SQRT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SQRTL:
      return gimple_simplify_CFN_BUILT_IN_SQRTL (res_op, seq, valueize, code, type, op0);
    case -CFN_SQRT:
      return gimple_simplify_CFN_SQRT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CBRTF:
      return gimple_simplify_CFN_BUILT_IN_CBRTF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CBRT:
      return gimple_simplify_CFN_BUILT_IN_CBRT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CBRTL:
      return gimple_simplify_CFN_BUILT_IN_CBRTL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TANF:
      return gimple_simplify_CFN_BUILT_IN_TANF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TAN:
      return gimple_simplify_CFN_BUILT_IN_TAN (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TANL:
      return gimple_simplify_CFN_BUILT_IN_TANL (res_op, seq, valueize, code, type, op0);
    case -CFN_TAN:
      return gimple_simplify_CFN_TAN (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SINF:
      return gimple_simplify_CFN_BUILT_IN_SINF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SIN:
      return gimple_simplify_CFN_BUILT_IN_SIN (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SINL:
      return gimple_simplify_CFN_BUILT_IN_SINL (res_op, seq, valueize, code, type, op0);
    case -CFN_SIN:
      return gimple_simplify_CFN_SIN (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SINHF:
      return gimple_simplify_CFN_BUILT_IN_SINHF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SINH:
      return gimple_simplify_CFN_BUILT_IN_SINH (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SINHL:
      return gimple_simplify_CFN_BUILT_IN_SINHL (res_op, seq, valueize, code, type, op0);
    case -CFN_SINH:
      return gimple_simplify_CFN_SINH (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TRUNCF:
      return gimple_simplify_CFN_BUILT_IN_TRUNCF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TRUNC:
      return gimple_simplify_CFN_BUILT_IN_TRUNC (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TRUNCL:
      return gimple_simplify_CFN_BUILT_IN_TRUNCL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TRUNCF16:
      return gimple_simplify_CFN_BUILT_IN_TRUNCF16 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TRUNCF32:
      return gimple_simplify_CFN_BUILT_IN_TRUNCF32 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TRUNCF64:
      return gimple_simplify_CFN_BUILT_IN_TRUNCF64 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TRUNCF128:
      return gimple_simplify_CFN_BUILT_IN_TRUNCF128 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TRUNCF32X:
      return gimple_simplify_CFN_BUILT_IN_TRUNCF32X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TRUNCF64X:
      return gimple_simplify_CFN_BUILT_IN_TRUNCF64X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_TRUNCF128X:
      return gimple_simplify_CFN_BUILT_IN_TRUNCF128X (res_op, seq, valueize, code, type, op0);
    case -CFN_TRUNC:
      return gimple_simplify_CFN_TRUNC (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_FLOORF:
      return gimple_simplify_CFN_BUILT_IN_FLOORF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_FLOOR:
      return gimple_simplify_CFN_BUILT_IN_FLOOR (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_FLOORL:
      return gimple_simplify_CFN_BUILT_IN_FLOORL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_FLOORF16:
      return gimple_simplify_CFN_BUILT_IN_FLOORF16 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_FLOORF32:
      return gimple_simplify_CFN_BUILT_IN_FLOORF32 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_FLOORF64:
      return gimple_simplify_CFN_BUILT_IN_FLOORF64 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_FLOORF128:
      return gimple_simplify_CFN_BUILT_IN_FLOORF128 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_FLOORF32X:
      return gimple_simplify_CFN_BUILT_IN_FLOORF32X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_FLOORF64X:
      return gimple_simplify_CFN_BUILT_IN_FLOORF64X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_FLOORF128X:
      return gimple_simplify_CFN_BUILT_IN_FLOORF128X (res_op, seq, valueize, code, type, op0);
    case -CFN_FLOOR:
      return gimple_simplify_CFN_FLOOR (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEILF:
      return gimple_simplify_CFN_BUILT_IN_CEILF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEIL:
      return gimple_simplify_CFN_BUILT_IN_CEIL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEILL:
      return gimple_simplify_CFN_BUILT_IN_CEILL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEILF16:
      return gimple_simplify_CFN_BUILT_IN_CEILF16 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEILF32:
      return gimple_simplify_CFN_BUILT_IN_CEILF32 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEILF64:
      return gimple_simplify_CFN_BUILT_IN_CEILF64 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEILF128:
      return gimple_simplify_CFN_BUILT_IN_CEILF128 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEILF32X:
      return gimple_simplify_CFN_BUILT_IN_CEILF32X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEILF64X:
      return gimple_simplify_CFN_BUILT_IN_CEILF64X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEILF128X:
      return gimple_simplify_CFN_BUILT_IN_CEILF128X (res_op, seq, valueize, code, type, op0);
    case -CFN_CEIL:
      return gimple_simplify_CFN_CEIL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ROUNDF:
      return gimple_simplify_CFN_BUILT_IN_ROUNDF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ROUND:
      return gimple_simplify_CFN_BUILT_IN_ROUND (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ROUNDL:
      return gimple_simplify_CFN_BUILT_IN_ROUNDL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ROUNDF16:
      return gimple_simplify_CFN_BUILT_IN_ROUNDF16 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ROUNDF32:
      return gimple_simplify_CFN_BUILT_IN_ROUNDF32 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ROUNDF64:
      return gimple_simplify_CFN_BUILT_IN_ROUNDF64 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ROUNDF128:
      return gimple_simplify_CFN_BUILT_IN_ROUNDF128 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ROUNDF32X:
      return gimple_simplify_CFN_BUILT_IN_ROUNDF32X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ROUNDF64X:
      return gimple_simplify_CFN_BUILT_IN_ROUNDF64X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ROUNDF128X:
      return gimple_simplify_CFN_BUILT_IN_ROUNDF128X (res_op, seq, valueize, code, type, op0);
    case -CFN_ROUND:
      return gimple_simplify_CFN_ROUND (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_NEARBYINTF:
      return gimple_simplify_CFN_BUILT_IN_NEARBYINTF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_NEARBYINT:
      return gimple_simplify_CFN_BUILT_IN_NEARBYINT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_NEARBYINTL:
      return gimple_simplify_CFN_BUILT_IN_NEARBYINTL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_NEARBYINTF16:
      return gimple_simplify_CFN_BUILT_IN_NEARBYINTF16 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_NEARBYINTF32:
      return gimple_simplify_CFN_BUILT_IN_NEARBYINTF32 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_NEARBYINTF64:
      return gimple_simplify_CFN_BUILT_IN_NEARBYINTF64 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_NEARBYINTF128:
      return gimple_simplify_CFN_BUILT_IN_NEARBYINTF128 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_NEARBYINTF32X:
      return gimple_simplify_CFN_BUILT_IN_NEARBYINTF32X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_NEARBYINTF64X:
      return gimple_simplify_CFN_BUILT_IN_NEARBYINTF64X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_NEARBYINTF128X:
      return gimple_simplify_CFN_BUILT_IN_NEARBYINTF128X (res_op, seq, valueize, code, type, op0);
    case -CFN_NEARBYINT:
      return gimple_simplify_CFN_NEARBYINT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_RINTF:
      return gimple_simplify_CFN_BUILT_IN_RINTF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_RINT:
      return gimple_simplify_CFN_BUILT_IN_RINT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_RINTL:
      return gimple_simplify_CFN_BUILT_IN_RINTL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_RINTF16:
      return gimple_simplify_CFN_BUILT_IN_RINTF16 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_RINTF32:
      return gimple_simplify_CFN_BUILT_IN_RINTF32 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_RINTF64:
      return gimple_simplify_CFN_BUILT_IN_RINTF64 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_RINTF128:
      return gimple_simplify_CFN_BUILT_IN_RINTF128 (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_RINTF32X:
      return gimple_simplify_CFN_BUILT_IN_RINTF32X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_RINTF64X:
      return gimple_simplify_CFN_BUILT_IN_RINTF64X (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_RINTF128X:
      return gimple_simplify_CFN_BUILT_IN_RINTF128X (res_op, seq, valueize, code, type, op0);
    case -CFN_RINT:
      return gimple_simplify_CFN_RINT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEXPF:
      return gimple_simplify_CFN_BUILT_IN_CEXPF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEXP:
      return gimple_simplify_CFN_BUILT_IN_CEXP (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CEXPL:
      return gimple_simplify_CFN_BUILT_IN_CEXPL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_IFLOORL:
      return gimple_simplify_CFN_BUILT_IN_IFLOORL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LFLOORL:
      return gimple_simplify_CFN_BUILT_IN_LFLOORL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLFLOORL:
      return gimple_simplify_CFN_BUILT_IN_LLFLOORL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ICEILL:
      return gimple_simplify_CFN_BUILT_IN_ICEILL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LCEILL:
      return gimple_simplify_CFN_BUILT_IN_LCEILL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLCEILL:
      return gimple_simplify_CFN_BUILT_IN_LLCEILL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_IROUNDL:
      return gimple_simplify_CFN_BUILT_IN_IROUNDL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LROUNDL:
      return gimple_simplify_CFN_BUILT_IN_LROUNDL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLROUNDL:
      return gimple_simplify_CFN_BUILT_IN_LLROUNDL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_IRINTL:
      return gimple_simplify_CFN_BUILT_IN_IRINTL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LRINTL:
      return gimple_simplify_CFN_BUILT_IN_LRINTL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLRINTL:
      return gimple_simplify_CFN_BUILT_IN_LLRINTL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_IFLOOR:
      return gimple_simplify_CFN_BUILT_IN_IFLOOR (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LFLOOR:
      return gimple_simplify_CFN_BUILT_IN_LFLOOR (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLFLOOR:
      return gimple_simplify_CFN_BUILT_IN_LLFLOOR (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ICEIL:
      return gimple_simplify_CFN_BUILT_IN_ICEIL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LCEIL:
      return gimple_simplify_CFN_BUILT_IN_LCEIL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLCEIL:
      return gimple_simplify_CFN_BUILT_IN_LLCEIL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_IROUND:
      return gimple_simplify_CFN_BUILT_IN_IROUND (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LROUND:
      return gimple_simplify_CFN_BUILT_IN_LROUND (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLROUND:
      return gimple_simplify_CFN_BUILT_IN_LLROUND (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_IRINT:
      return gimple_simplify_CFN_BUILT_IN_IRINT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LRINT:
      return gimple_simplify_CFN_BUILT_IN_LRINT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLRINT:
      return gimple_simplify_CFN_BUILT_IN_LLRINT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_IFLOORF:
      return gimple_simplify_CFN_BUILT_IN_IFLOORF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LFLOORF:
      return gimple_simplify_CFN_BUILT_IN_LFLOORF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLFLOORF:
      return gimple_simplify_CFN_BUILT_IN_LLFLOORF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_ICEILF:
      return gimple_simplify_CFN_BUILT_IN_ICEILF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LCEILF:
      return gimple_simplify_CFN_BUILT_IN_LCEILF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLCEILF:
      return gimple_simplify_CFN_BUILT_IN_LLCEILF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_IROUNDF:
      return gimple_simplify_CFN_BUILT_IN_IROUNDF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LROUNDF:
      return gimple_simplify_CFN_BUILT_IN_LROUNDF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLROUNDF:
      return gimple_simplify_CFN_BUILT_IN_LLROUNDF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_IRINTF:
      return gimple_simplify_CFN_BUILT_IN_IRINTF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LRINTF:
      return gimple_simplify_CFN_BUILT_IN_LRINTF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_LLRINTF:
      return gimple_simplify_CFN_BUILT_IN_LLRINTF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CPROJF:
      return gimple_simplify_CFN_BUILT_IN_CPROJF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CPROJ:
      return gimple_simplify_CFN_BUILT_IN_CPROJ (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_CPROJL:
      return gimple_simplify_CFN_BUILT_IN_CPROJL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SIGNBITF:
      return gimple_simplify_CFN_BUILT_IN_SIGNBITF (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SIGNBIT:
      return gimple_simplify_CFN_BUILT_IN_SIGNBIT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_SIGNBITL:
      return gimple_simplify_CFN_BUILT_IN_SIGNBITL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_POPCOUNT:
      return gimple_simplify_CFN_BUILT_IN_POPCOUNT (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_POPCOUNTL:
      return gimple_simplify_CFN_BUILT_IN_POPCOUNTL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_POPCOUNTLL:
      return gimple_simplify_CFN_BUILT_IN_POPCOUNTLL (res_op, seq, valueize, code, type, op0);
    case -CFN_BUILT_IN_POPCOUNTIMAX:
      return gimple_simplify_CFN_BUILT_IN_POPCOUNTIMAX (res_op, seq, valueize, code, type, op0);
    case -CFN_REDUC_PLUS:
      return gimple_simplify_CFN_REDUC_PLUS (res_op, seq, valueize, code, type, op0);
    case -CFN_REDUC_IOR:
      return gimple_simplify_CFN_REDUC_IOR (res_op, seq, valueize, code, type, op0);
    case -CFN_REDUC_XOR:
      return gimple_simplify_CFN_REDUC_XOR (res_op, seq, valueize, code, type, op0);
    default:;
    }
  return false;
}

static bool
gimple_simplify_PLUS_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 130 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 130, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
    }
  if (real_zerop (op1))
    {
      {
/* #line 146 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_306 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
								    {
								      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, PLUS_EXPR))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, PLUS_EXPR))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
								    {
								      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, PLUS_EXPR))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, PLUS_EXPR))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case BIT_AND_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 783 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o30, o61, o21 };
								    if (gimple_simplify_304 (res_op, seq, valueize, type, captures, PLUS_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case BIT_AND_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					switch (TREE_CODE (o50))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o50))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case BIT_NOT_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
							  {
							    switch (TREE_CODE (o51))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 783 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
								    if (gimple_simplify_304 (res_op, seq, valueize, type, captures, PLUS_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		if (integer_onep (o21))
		  {
		    if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		      {
			{
/* #line 963 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			  if (gimple_simplify_228 (res_op, seq, valueize, type, captures))
			    return true;
			}
		      }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
						    {
						      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[1] ATTRIBUTE_UNUSED = { o20 };
							if (gimple_simplify_220 (res_op, seq, valueize, type, captures, PLUS_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == o30 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
						    {
						      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[1] ATTRIBUTE_UNUSED = { o30 };
							if (gimple_simplify_220 (res_op, seq, valueize, type, captures, PLUS_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (real_zerop (op0))
  {
    {
/* #line 146 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
      if (gimple_simplify_306 (res_op, seq, valueize, type, captures))
        return true;
    }
  }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_220 (res_op, seq, valueize, type, captures, PLUS_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_220 (res_op, seq, valueize, type, captures, PLUS_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      if (integer_onep (o31))
			{
			  {
/* #line 963 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			    if (gimple_simplify_228 (res_op, seq, valueize, type, captures))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_XOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1021 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_252 (res_op, seq, valueize, type, captures, PLUS_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1026 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_255 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					switch (TREE_CODE (o50))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o50))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case BIT_AND_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							switch (TREE_CODE (o61))
							  {
							  case INTEGER_CST:
							    {
							      {
/* #line 1090 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o50, o60, o61 };
								if (gimple_simplify_61 (res_op, seq, valueize, type, captures, PLUS_EXPR))
								  return true;
							      }
							      break;
							    }
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    case BIT_AND_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					switch (TREE_CODE (o51))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 1090 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50, o51 };
						if (gimple_simplify_61 (res_op, seq, valueize, type, captures, PLUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1021 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_252 (res_op, seq, valueize, type, captures, PLUS_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1026 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_255 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							switch (TREE_CODE (o60))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o60))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case BIT_AND_EXPR:
								      {
									tree o70 = gimple_assign_rhs1 (def);
									o70 = do_valueize (valueize, o70);
									tree o71 = gimple_assign_rhs2 (def);
									o71 = do_valueize (valueize, o71);
									if (tree_swap_operands_p (o70, o71))
									  std::swap (o70, o71);
									switch (TREE_CODE (o71))
									  {
									  case INTEGER_CST:
									    {
									      {
/* #line 1090 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, o60, o70, o71 };
										if (gimple_simplify_61 (res_op, seq, valueize, type, captures, PLUS_EXPR))
										  return true;
									      }
									      break;
									    }
								          default:;
								          }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case BIT_AND_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							switch (TREE_CODE (o61))
							  {
							  case INTEGER_CST:
							    {
							      {
/* #line 1090 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, op1, o60, o61 };
								if (gimple_simplify_61 (res_op, seq, valueize, type, captures, PLUS_EXPR))
								  return true;
							      }
							      break;
							    }
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case NEGATE_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { op1, o30 };
				    if (gimple_simplify_263 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
				    if (gimple_simplify_263 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    if (gimple_simplify_263 (res_op, seq, valueize, type, captures))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op1, o20 };
		    if (gimple_simplify_263 (res_op, seq, valueize, type, captures))
		      return true;
		  }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_264 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case PLUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o51, o20 };
					if (gimple_simplify_256 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o50, o20 };
					if (gimple_simplify_256 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      case MINUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_248 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o51, o20 };
					if (gimple_simplify_248 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if (CONSTANT_CLASS_P (o20))
		    {
		      if (CONSTANT_CLASS_P (op1))
			{
			  {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_268 (res_op, seq, valueize, type, captures, PLUS_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
			if (gimple_simplify_264 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_256 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_256 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_DIFF_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_270 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o51, o20 };
					if (gimple_simplify_270 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_269 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if (integer_each_onep (op1))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_253 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_nop_convert (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case SSA_NAME:
	  if (gimple *def_stmt = get_def (valueize, o20))
	    {
	      if (gassign *def = dyn_cast <gassign *> (def_stmt))
	        switch (gimple_assign_rhs_code (def))
		  {
		  case PLUS_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      tree o31 = gimple_assign_rhs2 (def);
		      o31 = do_valueize (valueize, o31);
		      if (tree_swap_operands_p (o30, o31))
		        std::swap (o30, o31);
		      if (CONSTANT_CLASS_P (o31))
			{
			  if (CONSTANT_CLASS_P (op1))
			    {
			      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
				if (gimple_simplify_258 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, PLUS_EXPR))
				  return true;
			      }
			    }
		        }
		      break;
		    }
		  case MINUS_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      tree o31 = gimple_assign_rhs2 (def);
		      o31 = do_valueize (valueize, o31);
		      if (CONSTANT_CLASS_P (o31))
			{
			  if (CONSTANT_CLASS_P (op1))
			    {
			      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
				if (gimple_simplify_258 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, PLUS_EXPR))
				  return true;
			      }
			    }
		        }
		      break;
		    }
		  default:;
		  }
	    }
	  break;
        default:;
        }
}
}
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_269 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  if (integer_each_onep (op1))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[1] ATTRIBUTE_UNUSED = { o30 };
					if (gimple_simplify_253 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MULT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_122 (res_op, seq, valueize, type, captures, PLUS_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_122 (res_op, seq, valueize, type, captures, PLUS_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
					if (gimple_simplify_122 (res_op, seq, valueize, type, captures, PLUS_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
					if (gimple_simplify_122 (res_op, seq, valueize, type, captures, PLUS_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			if (gimple_simplify_324 (res_op, seq, valueize, type, captures, PLUS_EXPR))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
			if (gimple_simplify_324 (res_op, seq, valueize, type, captures, PLUS_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_34 (res_op, seq, valueize, type, captures, PLUS_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
			if (gimple_simplify_34 (res_op, seq, valueize, type, captures, PLUS_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2763 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 2763 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1])))
	    {
	      {
/* #line 2764 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = const_unop (NEGATE_EXPR, type, captures[1]);
/* #line 2765 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (!TREE_OVERFLOW (tem) || !flag_trapping_math)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2766, __FILE__, __LINE__);
		      res_op->set_op (MINUS_EXPR, type, 2);
		      res_op->ops[0] = captures[0];
		      res_op->ops[1] =  tem;
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
	      }
	    }
	}
        break;
      }
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2771 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 2771 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (SCALAR_FLOAT_TYPE_P (type))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2772, __FILE__, __LINE__);
	    res_op->set_op (MULT_EXPR, type, 2);
	    res_op->ops[0] = captures[0];
	    res_op->ops[1] =  build_real (type, dconst2);
	    gimple_resimplify2 (lseq, res_op, valueize);
	    return true;
	  }
	else
	  {
/* #line 2773 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    if (INTEGRAL_TYPE_P (type))
	      {
		gimple_seq *lseq = seq;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2774, __FILE__, __LINE__);
		res_op->set_op (MULT_EXPR, type, 2);
		res_op->ops[0] = captures[0];
		res_op->ops[1] =  build_int_cst (type, 2);
		gimple_resimplify2 (lseq, res_op, valueize);
		return true;
	      }
	  }
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o30) == SSA_NAME
		       || is_gimple_min_invariant (o30)))
		    {
		      o30 = do_valueize (valueize, o30);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case VEC_COND_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_assign_rhs3 (def);
				      o42 = do_valueize (valueize, o42);
				      if (integer_each_onep (o41))
					{
					  if (integer_zerop (o42))
					    {
					      {
/* #line 3111 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42 };
						if (gimple_simplify_20 (res_op, seq, valueize, type, captures))
						  return true;
					      }
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      switch (TREE_CODE (o20))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o20))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case VEC_COND_EXPR:
				    {
				      tree o30 = gimple_assign_rhs1 (def);
				      o30 = do_valueize (valueize, o30);
				      tree o31 = gimple_assign_rhs2 (def);
				      o31 = do_valueize (valueize, o31);
				      tree o32 = gimple_assign_rhs3 (def);
				      o32 = do_valueize (valueize, o32);
				      if (integer_each_onep (o31))
					{
					  if (integer_zerop (o32))
					    {
					      {
/* #line 3111 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op1, o20, o30, o31, o32 };
						if (gimple_simplify_20 (res_op, seq, valueize, type, captures))
						  return true;
					      }
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VEC_COND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_assign_rhs3 (def);
		  o32 = do_valueize (valueize, o32);
		  if (integer_each_onep (o31))
		    {
		      if (integer_zerop (o32))
			{
			  {
/* #line 3111 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32 };
			    if (gimple_simplify_20 (res_op, seq, valueize, type, captures))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VEC_COND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  tree o22 = gimple_assign_rhs3 (def);
		  o22 = do_valueize (valueize, o22);
		  if (integer_each_onep (o21))
		    {
		      if (integer_zerop (o22))
			{
			  {
/* #line 3111 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op1, op0, o20, o21, o22 };
			    if (gimple_simplify_20 (res_op, seq, valueize, type, captures))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case RDIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case RDIV_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_301 (res_op, seq, valueize, type, captures, PLUS_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_POPCOUNT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POPCOUNT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 5166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_21 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNT))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POPCOUNTL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 5166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_21 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTL))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTLL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POPCOUNTLL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 5166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_21 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTLL))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTIMAX:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POPCOUNTIMAX:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 5166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_21 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POPCOUNTIMAX))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_POINTER_PLUS_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 130 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 130, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case POINTER_PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 1736 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
		    gimple_seq *lseq = seq;
		    if (lseq
		        && (!single_use (captures[0])))
		      lseq = NULL;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1736, __FILE__, __LINE__);
		    res_op->set_op (POINTER_PLUS_EXPR, type, 2);
		    res_op->ops[0] = captures[1];
		    {
		      tree ops1[2], res;
		      ops1[0] = captures[2];
		      ops1[1] = captures[3];
		      gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
		      gimple_resimplify2 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[1] = res;
		    }
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_zerop (op0))
  {
    {
/* #line 135 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op1 };
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 135, __FILE__, __LINE__);
      res_op->set_op (NOP_EXPR, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  switch (TREE_CODE (o41))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o41))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      CASE_CONVERT:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == op0 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, op0, 0) && types_match (o70, op0)))
								    {
								      {
/* #line 1749 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o50 };
/* #line 1749 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2])) && ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[3]))) || (0 && type == TREE_TYPE (captures[3]))))
									  {
									    gimple_seq *lseq = seq;
									    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1752, __FILE__, __LINE__);
									    tree tem;
									    tem = captures[3];
									    res_op->set_value (tem);
									    return true;
									  }
								      }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case POINTER_DIFF_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
				    {
				      {
/* #line 1755 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { o41, op1, o30, o40, op0 };
/* #line 1755 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2])))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1756, __FILE__, __LINE__);
					    res_op->set_op (NOP_EXPR, type, 1);
					    res_op->ops[0] = captures[3];
					    gimple_resimplify1 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o31))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o31))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
						    {
						      {
/* #line 1749 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o40 };
/* #line 1749 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2])) && ((1 && useless_type_conversion_p (type, TREE_TYPE (captures[3]))) || (0 && type == TREE_TYPE (captures[3]))))
							  {
							    gimple_seq *lseq = seq;
							    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1752, __FILE__, __LINE__);
							    tree tem;
							    tem = captures[3];
							    res_op->set_value (tem);
							    return true;
							  }
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
		    {
		      {
/* #line 1755 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { o31, op1, op1, o30, op0 };
/* #line 1755 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2])))
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1756, __FILE__, __LINE__);
			    res_op->set_op (NOP_EXPR, type, 1);
			    res_op->ops[0] = captures[3];
			    gimple_resimplify1 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
						    {
						      switch (TREE_CODE (o41))
						        {
							case INTEGER_CST:
							  {
							    {
/* #line 1767 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { op0, o41 };
							      {
/* #line 1767 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[1]));
								  gimple_seq *lseq = seq;
								  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1768, __FILE__, __LINE__);
								  res_op->set_op (BIT_AND_EXPR, type, 2);
								  res_op->ops[0] = captures[0];
								  res_op->ops[1] =  algn;
								  gimple_resimplify2 (lseq, res_op, valueize);
								  return true;
							      }
							    }
							    break;
							  }
						        default:;
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_MINUS_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 130 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 130, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
    }
  if (real_zerop (op1))
    {
      {
/* #line 152 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 152 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (fold_real_zero_addition_p (type, captures[1], 1))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 153, __FILE__, __LINE__);
	    tree tem;
	    tem = captures[0];
	    res_op->set_value (tem);
	    return true;
	  }
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 162 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 162 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (!FLOAT_TYPE_P (type) || !HONOR_NANS (type))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 163, __FILE__, __LINE__);
	    tree tem;
	    tem =  build_zero_cst (type);
	    res_op->set_value (tem);
	    return true;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case MULT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  if (tree_swap_operands_p (o50, o51))
						    std::swap (o50, o51);
						  switch (TREE_CODE (o50))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o50))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case TRUNC_DIV_EXPR:
							        {
								  tree o60 = gimple_assign_rhs1 (def);
								  o60 = do_valueize (valueize, o60);
								  tree o61 = gimple_assign_rhs2 (def);
								  o61 = do_valueize (valueize, o61);
								  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o20, 0))
								    {
								      if ((o51 == o61 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o61, 0))
									{
									  {
/* #line 547 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, o20, o61 };
									    if (gimple_simplify_94 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
						  switch (TREE_CODE (o51))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o51))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case TRUNC_DIV_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o20, 0))
								    {
								      if ((o71 == o50 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o50, 0))
									{
									  {
/* #line 547 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[4] ATTRIBUTE_UNUSED = { o70, o71, o20, o50 };
									    if (gimple_simplify_94 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case MULT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case TRUNC_DIV_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
						    {
						      if ((o41 == o51 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o51, 0))
							{
							  {
/* #line 547 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, o20, o51 };
							    if (gimple_simplify_94 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  switch (TREE_CODE (o41))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o41))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case TRUNC_DIV_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o20, 0))
						    {
						      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || operand_equal_p (o61, o40, 0))
							{
							  {
/* #line 547 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, o20, o40 };
							    if (gimple_simplify_94 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MULT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case TRUNC_DIV_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, op0, 0))
						    {
						      if ((o41 == o51 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o51, 0))
							{
							  {
/* #line 547 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, op0, o51 };
							    if (gimple_simplify_94 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  switch (TREE_CODE (o41))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o41))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case TRUNC_DIV_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, op0, 0))
						    {
						      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || operand_equal_p (o61, o40, 0))
							{
							  {
/* #line 547 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { o60, o61, op0, o40 };
							    if (gimple_simplify_94 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case TRUNC_DIV_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
				    {
				      if ((o31 == o41 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, o41, 0))
					{
					  {
/* #line 547 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, op0, o41 };
					    if (gimple_simplify_94 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o31))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o31))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case TRUNC_DIV_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, op0, 0))
				    {
				      if ((o51 == o30 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o30, 0))
					{
					  {
/* #line 547 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, op0, o30 };
					    if (gimple_simplify_94 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
							{
							  {
/* #line 765 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, op1 };
							    if (gimple_simplify_167 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
							{
							  {
/* #line 765 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, op1 };
							    if (gimple_simplify_167 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
							{
							  {
/* #line 765 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o30, op1 };
							    if (gimple_simplify_167 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
							{
							  {
/* #line 765 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o30, op1 };
							    if (gimple_simplify_167 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case BIT_AND_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (o51))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 768 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
/* #line 768 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    if (~wi::to_wide (captures[2]) == wi::to_wide (captures[4]))
						      {
							gimple_seq *lseq = seq;
							if (lseq
							    && (!single_use (captures[0])
							        || !single_use (captures[3])))
							  lseq = NULL;
							if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 769, __FILE__, __LINE__);
							res_op->set_op (MINUS_EXPR, type, 2);
							{
							  tree ops1[2], res;
							  ops1[0] = captures[1];
							  ops1[1] = captures[4];
							  gimple_match_op tem_op (res_op->cond.any_else (), BIT_XOR_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
							  gimple_resimplify2 (lseq, &tem_op, valueize);
							  res = maybe_push_res_to_seq (&tem_op, lseq);
							  if (!res) return false;
							  res_op->ops[0] = res;
							}
							res_op->ops[1] = captures[4];
							gimple_resimplify2 (lseq, res_op, valueize);
							return true;
						      }
						  }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case BIT_NOT_EXPR:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
							{
							  {
/* #line 774 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
							    if (gimple_simplify_170 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				    }
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
							{
							  {
/* #line 774 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
							    if (gimple_simplify_170 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
							{
							  {
/* #line 774 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, op1 };
							    if (gimple_simplify_170 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case BIT_NOT_EXPR:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
							{
							  {
/* #line 774 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, op1 };
							    if (gimple_simplify_170 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1031 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 1031 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type) && !TYPE_SATURATING (type))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1033, __FILE__, __LINE__);
						res_op->set_op (BIT_AND_EXPR, type, 2);
						res_op->ops[0] = captures[0];
						res_op->ops[1] = captures[1];
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				        }
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1038 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 1038 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type) && !TYPE_SATURATING (type))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1040, __FILE__, __LINE__);
						res_op->set_op (BIT_IOR_EXPR, type, 2);
						res_op->ops[0] = captures[0];
						res_op->ops[1] = captures[1];
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_XOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1045 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1045, __FILE__, __LINE__);
					    res_op->set_op (BIT_AND_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[1];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				        }
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1050 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1050, __FILE__, __LINE__);
					    res_op->set_op (BIT_XOR_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[1];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (gimple_negate_expr_p (op1, valueize))
    {
      {
/* #line 1250 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 1250 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (!FIXED_POINT_TYPE_P (type))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1251, __FILE__, __LINE__);
	    res_op->set_op (PLUS_EXPR, type, 2);
	    res_op->ops[0] = captures[0];
	    {
	      tree ops1[1], res;
	      ops1[0] = captures[1];
	      gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      res_op->ops[1] = res;
	    }
	    gimple_resimplify2 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  if (tree_swap_operands_p (o50, o51))
						    std::swap (o50, o51);
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
						    {
						      {
/* #line 1414 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[5] ATTRIBUTE_UNUSED = { o50, op1, o40, o51, o20 };
							if (gimple_simplify_155 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
						    {
						      {
/* #line 1414 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[5] ATTRIBUTE_UNUSED = { o51, op1, o40, o50, o20 };
							if (gimple_simplify_155 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, o20, 0))
				    {
				      {
/* #line 1414 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { o40, op1, op1, o41, o20 };
					if (gimple_simplify_66 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o20, 0))
				    {
				      {
/* #line 1414 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { o41, op1, op1, o40, o20 };
					if (gimple_simplify_66 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case ADDR_EXPR:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o40 = gimple_assign_rhs1 (def);
					o40 = do_valueize (valueize, o40);
					{
/* #line 1773 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
/* #line 1773 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
					    {
					      {
/* #line 1774 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 diff;
/* #line 1775 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  if (ptr_difference_const (captures[0], captures[1], &diff))
						    {
						      gimple_seq *lseq = seq;
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1776, __FILE__, __LINE__);
						      tree tem;
						      tem =  build_int_cst_type (type, diff);
						      res_op->set_value (tem);
						      return true;
						    }
					      }
					    }
					}
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case ADDR_EXPR:
				      {
					{
/* #line 1779 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
/* #line 1779 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (tree_nop_conversion_p (type, TREE_TYPE (captures[0])))
					    {
					      {
/* #line 1780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 diff;
/* #line 1781 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  if (ptr_difference_const (captures[0], captures[1], &diff))
						    {
						      gimple_seq *lseq = seq;
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1782, __FILE__, __LINE__);
						      tree tem;
						      tem =  build_int_cst_type (type, diff);
						      res_op->set_value (tem);
						      return true;
						    }
					      }
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
				    {
				      {
/* #line 1414 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { o40, op1, o30, o41, op0 };
					if (gimple_simplify_155 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
				    {
				      {
/* #line 1414 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { o41, op1, o30, o40, op0 };
					if (gimple_simplify_155 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
		    {
		      {
/* #line 1414 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { o30, op1, op1, o31, op0 };
			if (gimple_simplify_66 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
		    {
		      {
/* #line 1414 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { o31, op1, op1, o30, op0 };
			if (gimple_simplify_66 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case PLUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (MINUS_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (MINUS_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (MINUS_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (MINUS_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1564, __FILE__, __LINE__);
					    res_op->set_op (MINUS_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1588 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1588 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1591, __FILE__, __LINE__);
					    res_op->set_op (MINUS_EXPR, type, 2);
					    res_op->ops[0] = captures[2];
					    res_op->ops[1] = captures[1];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_DIFF_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1573 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
/* #line 1573 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2])))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1575, __FILE__, __LINE__);
					    res_op->set_op (POINTER_DIFF_EXPR, type, 2);
					    res_op->ops[0] = captures[1];
					    res_op->ops[1] = captures[3];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
/* #line 1600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1])))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1602, __FILE__, __LINE__);
					    res_op->set_op (POINTER_DIFF_EXPR, type, 2);
					    res_op->ops[0] = captures[3];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
				    if (gimple_simplify_254 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    if (gimple_simplify_254 (res_op, seq, valueize, type, captures))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_273 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_273 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (!TYPE_SATURATING (type))
			  {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1889, __FILE__, __LINE__);
				res_op->set_op (NEGATE_EXPR, type, 1);
				res_op->ops[0] = captures[1];
				gimple_resimplify1 (lseq, res_op, valueize);
				return true;
			      }
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
			if (gimple_simplify_251 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_251 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (!TYPE_SATURATING (type))
			  {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1898, __FILE__, __LINE__);
				tree tem;
				tem = captures[1];
				res_op->set_value (tem);
				return true;
			      }
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_259 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_259 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (CONSTANT_CLASS_P (o20))
		    {
		      if (CONSTANT_CLASS_P (op1))
			{
			  {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_268 (res_op, seq, valueize, type, captures, MINUS_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  if (integer_each_onep (op1))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[1] ATTRIBUTE_UNUSED = { o30 };
					if (gimple_simplify_274 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      case PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
						    {
						      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
							if (gimple_simplify_265 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
						    {
						      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 };
							if (gimple_simplify_265 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o30, 0))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
					if (gimple_simplify_265 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 };
					if (gimple_simplify_265 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      case POINTER_PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
						    {
						      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							if (!TYPE_SATURATING (type))
							  {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
							      {
/* #line 2017 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && TREE_CODE (captures[1]) == INTEGER_CST && tree_int_cst_sign_bit (captures[1]) == 0))
								  {
								    gimple_seq *lseq = seq;
								    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2025, __FILE__, __LINE__);
								    res_op->set_op (NOP_EXPR, type, 1);
								    res_op->ops[0] = captures[1];
								    gimple_resimplify1 (lseq, res_op, valueize);
								    return true;
								  }
							      }
							  }
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case PLUS_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  if (tree_swap_operands_p (o50, o51))
						    std::swap (o50, o51);
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
						    {
						      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
							if (gimple_simplify_260 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
						    {
						      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o51, o50, o20 };
							if (gimple_simplify_260 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (integer_each_onep (op1))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_274 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_nop_convert (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case SSA_NAME:
	  if (gimple *def_stmt = get_def (valueize, o20))
	    {
	      if (gassign *def = dyn_cast <gassign *> (def_stmt))
	        switch (gimple_assign_rhs_code (def))
		  {
		  case PLUS_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      tree o31 = gimple_assign_rhs2 (def);
		      o31 = do_valueize (valueize, o31);
		      if (tree_swap_operands_p (o30, o31))
		        std::swap (o30, o31);
		      if (CONSTANT_CLASS_P (o31))
			{
			  if (CONSTANT_CLASS_P (op1))
			    {
			      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
				if (gimple_simplify_258 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, MINUS_EXPR))
				  return true;
			      }
			    }
		        }
		      break;
		    }
		  case MINUS_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      tree o31 = gimple_assign_rhs2 (def);
		      o31 = do_valueize (valueize, o31);
		      if (CONSTANT_CLASS_P (o31))
			{
			  if (CONSTANT_CLASS_P (op1))
			    {
			      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
				if (gimple_simplify_258 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, MINUS_EXPR))
				  return true;
			      }
			    }
		        }
		      break;
		    }
		  default:;
		  }
	    }
	  break;
        default:;
        }
}
}
if (CONSTANT_CLASS_P (op0))
  {
    switch (TREE_CODE (op1))
      {
      case SSA_NAME:
        if (gimple *def_stmt = get_def (valueize, op1))
          {
	    if (gassign *def = dyn_cast <gassign *> (def_stmt))
	      switch (gimple_assign_rhs_code (def))
		{
		case MINUS_EXPR:
		  {
		    tree o30 = gimple_assign_rhs1 (def);
		    o30 = do_valueize (valueize, o30);
		    tree o31 = gimple_assign_rhs2 (def);
		    o31 = do_valueize (valueize, o31);
		    if (CONSTANT_CLASS_P (o30))
		      {
			{
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (!TYPE_SATURATING (type))
			    {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
				{
				  {
/* #line 1971 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree cst = const_binop (MINUS_EXPR, type, captures[0], captures[1]);
/* #line 1972 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (cst && !TREE_OVERFLOW (cst))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1973, __FILE__, __LINE__);
					  res_op->set_op (PLUS_EXPR, type, 2);
					  res_op->ops[0] =  cst;
					  res_op->ops[1] = captures[2];
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				  }
				}
			    }
			}
		      }
		    break;
		  }
		default:;
		}
          }
        break;
      default:;
      }
  }
if (integer_all_onesp (op0))
  {
    {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op1 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!TYPE_SATURATING (type))
	{
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1997, __FILE__, __LINE__);
	      res_op->set_op (BIT_NOT_EXPR, type, 1);
	      res_op->ops[0] = captures[0];
	      gimple_resimplify1 (lseq, res_op, valueize);
	      return true;
	    }
	}
    }
  }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case PLUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, op0 };
					if (gimple_simplify_260 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, op0 };
					if (gimple_simplify_260 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case POINTER_PLUS_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
						    {
						      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							if (!TYPE_SATURATING (type))
							  {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
							      {
/* #line 2059 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
								  {
								    {
/* #line 2062 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
									gimple_seq *lseq = seq;
									if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2063, __FILE__, __LINE__);
									res_op->set_op (NOP_EXPR, type, 1);
									{
									  tree ops1[1], res;
									  {
									    tree ops2[1], res;
									    ops2[0] = captures[1];
									    if (utype != TREE_TYPE (ops2[0])
									        && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
									      {
										gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
										gimple_resimplify1 (lseq, &tem_op, valueize);
										res = maybe_push_res_to_seq (&tem_op, lseq);
										if (!res) return false;
									      }
									    else
									      res = ops2[0];
									    ops1[0] = res;
									  }
									  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
									  gimple_resimplify1 (lseq, &tem_op, valueize);
									  res = maybe_push_res_to_seq (&tem_op, lseq);
									  if (!res) return false;
									  res_op->ops[0] = res;
									}
									gimple_resimplify1 (lseq, res_op, valueize);
									return true;
								    }
								  }
								else
								  {
/* #line 2064 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && TREE_CODE (captures[1]) == INTEGER_CST && tree_int_cst_sign_bit (captures[1]) == 0))
								      {
									gimple_seq *lseq = seq;
									if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2072, __FILE__, __LINE__);
									res_op->set_op (NEGATE_EXPR, type, 1);
									{
									  tree ops1[1], res;
									  ops1[0] = captures[1];
									  if (type != TREE_TYPE (ops1[0])
									      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
									    {
									      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
									      gimple_resimplify1 (lseq, &tem_op, valueize);
									      res = maybe_push_res_to_seq (&tem_op, lseq);
									      if (!res) return false;
									    }
									  else
									    res = ops1[0];
									  res_op->ops[0] = res;
									}
									gimple_resimplify1 (lseq, res_op, valueize);
									return true;
								      }
								  }
							      }
							  }
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case PLUS_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if (tree_swap_operands_p (o70, o71))
								    std::swap (o70, o71);
								  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o30, 0))
								    {
								      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
									if (gimple_simplify_246 (res_op, seq, valueize, type, captures))
									  return true;
								      }
								    }
								  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o30, 0))
								    {
								      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
									if (gimple_simplify_246 (res_op, seq, valueize, type, captures))
									  return true;
								      }
								    }
								  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o31, 0))
								    {
								      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
									if (gimple_simplify_246 (res_op, seq, valueize, type, captures))
									  return true;
								      }
								    }
								  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o31, 0))
								    {
								      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
									if (gimple_simplify_246 (res_op, seq, valueize, type, captures))
									  return true;
								      }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case POINTER_PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case POINTER_PLUS_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o30, 0))
								    {
								      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									if (!TYPE_SATURATING (type))
									  {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
									      {
/* #line 2111 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_UNDEFINED (type) && element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
										  {
										    {
/* #line 2114 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
											gimple_seq *lseq = seq;
											if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2115, __FILE__, __LINE__);
											res_op->set_op (NOP_EXPR, type, 1);
											{
											  tree ops1[2], res;
											  {
											    tree ops2[1], res;
											    ops2[0] = captures[1];
											    if (utype != TREE_TYPE (ops2[0])
											        && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
											      {
												gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
												gimple_resimplify1 (lseq, &tem_op, valueize);
												res = maybe_push_res_to_seq (&tem_op, lseq);
												if (!res) return false;
											      }
											    else
											      res = ops2[0];
											    ops1[0] = res;
											  }
											  {
											    tree ops2[1], res;
											    ops2[0] = captures[2];
											    if (utype != TREE_TYPE (ops2[0])
											        && !useless_type_conversion_p (utype, TREE_TYPE (ops2[0])))
											      {
												gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops2[0]);
												gimple_resimplify1 (lseq, &tem_op, valueize);
												res = maybe_push_res_to_seq (&tem_op, lseq);
												if (!res) return false;
											      }
											    else
											      res = ops2[0];
											    ops1[1] = res;
											  }
											  gimple_match_op tem_op (res_op->cond.any_else (), MINUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
											  gimple_resimplify2 (lseq, &tem_op, valueize);
											  res = maybe_push_res_to_seq (&tem_op, lseq);
											  if (!res) return false;
											  res_op->ops[0] = res;
											}
											gimple_resimplify1 (lseq, res_op, valueize);
											return true;
										    }
										  }
										else
										  {
/* #line 2116 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										    if (element_precision (type) <= element_precision (TREE_TYPE (captures[1])) || (POINTER_TYPE_P (TREE_TYPE (captures[0])) && TREE_CODE (captures[1]) == INTEGER_CST && tree_int_cst_sign_bit (captures[1]) == 0 && TREE_CODE (captures[2]) == INTEGER_CST && tree_int_cst_sign_bit (captures[2]) == 0))
										      {
											gimple_seq *lseq = seq;
											if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2126, __FILE__, __LINE__);
											res_op->set_op (MINUS_EXPR, type, 2);
											{
											  tree ops1[1], res;
											  ops1[0] = captures[1];
											  if (type != TREE_TYPE (ops1[0])
											      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
											    {
											      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
											      gimple_resimplify1 (lseq, &tem_op, valueize);
											      res = maybe_push_res_to_seq (&tem_op, lseq);
											      if (!res) return false;
											    }
											  else
											    res = ops1[0];
											  res_op->ops[0] = res;
											}
											{
											  tree ops1[1], res;
											  ops1[0] = captures[2];
											  if (type != TREE_TYPE (ops1[0])
											      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
											    {
											      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
											      gimple_resimplify1 (lseq, &tem_op, valueize);
											      res = maybe_push_res_to_seq (&tem_op, lseq);
											      if (!res) return false;
											    }
											  else
											    res = ops1[0];
											  res_op->ops[1] = res;
											}
											gimple_resimplify2 (lseq, res_op, valueize);
											return true;
										      }
										  }
									      }
									  }
								      }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MULT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_122 (res_op, seq, valueize, type, captures, MINUS_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_122 (res_op, seq, valueize, type, captures, MINUS_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
					if (gimple_simplify_122 (res_op, seq, valueize, type, captures, MINUS_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
					if (gimple_simplify_122 (res_op, seq, valueize, type, captures, MINUS_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			if (gimple_simplify_324 (res_op, seq, valueize, type, captures, MINUS_EXPR))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
			if (gimple_simplify_324 (res_op, seq, valueize, type, captures, MINUS_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_34 (res_op, seq, valueize, type, captures, MINUS_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 2140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
			if (gimple_simplify_34 (res_op, seq, valueize, type, captures, MINUS_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_zerop (op0))
  {
    {
/* #line 2779 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op1 };
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2779, __FILE__, __LINE__);
      res_op->set_op (NEGATE_EXPR, type, 1);
      res_op->ops[0] = captures[0];
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  }
if (real_zerop (op0))
  {
    {
/* #line 2789 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 2789 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (fold_real_zero_addition_p (type, captures[0], 0))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2790, __FILE__, __LINE__);
	  res_op->set_op (NEGATE_EXPR, type, 1);
	  res_op->ops[0] = captures[1];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o30) == SSA_NAME
		       || is_gimple_min_invariant (o30)))
		    {
		      o30 = do_valueize (valueize, o30);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case VEC_COND_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_assign_rhs3 (def);
				      o42 = do_valueize (valueize, o42);
				      if (integer_each_onep (o41))
					{
					  if (integer_zerop (o42))
					    {
					      {
/* #line 3121 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42 };
						if (gimple_simplify_206 (res_op, seq, valueize, type, captures))
						  return true;
					      }
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case VEC_COND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_assign_rhs3 (def);
		  o32 = do_valueize (valueize, o32);
		  if (integer_each_onep (o31))
		    {
		      if (integer_zerop (o32))
			{
			  {
/* #line 3121 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32 };
			    if (gimple_simplify_206 (res_op, seq, valueize, type, captures))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case RDIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case RDIV_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_301 (res_op, seq, valueize, type, captures, MINUS_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_BIT_IOR_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 130 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 130, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_zerop (o21))
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      if (integer_zerop (o51))
					{
					  {
/* #line 748 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					    if (gimple_simplify_216 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
		  if (integer_all_onesp (o21))
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      if (integer_all_onesp (o51))
					{
					  {
/* #line 757 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					    if (gimple_simplify_88 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
								    {
								      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
								    {
								      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case BIT_AND_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 783 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o30, o61, o21 };
								    if (gimple_simplify_304 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case BIT_AND_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					switch (TREE_CODE (o50))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o50))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case BIT_NOT_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
							  {
							    switch (TREE_CODE (o51))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 783 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
								    if (gimple_simplify_304 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 789 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_176 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 789 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_176 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case BIT_NOT_EXPR:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
							{
							  {
/* #line 794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op0 };
							    if (gimple_simplify_179 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case BIT_NOT_EXPR:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
							{
							  {
/* #line 794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op0 };
							    if (gimple_simplify_179 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				    }
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
							{
							  {
/* #line 794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op0 };
							    if (gimple_simplify_179 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
							{
							  {
/* #line 794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op0 };
							    if (gimple_simplify_179 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_XOR_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 789 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
			if (gimple_simplify_176 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 789 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_176 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_XOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
							{
							  {
/* #line 794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op1 };
							    if (gimple_simplify_102 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
							{
							  {
/* #line 794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op1 };
							    if (gimple_simplify_102 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_XOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
							{
							  {
/* #line 794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o21, o30, op1 };
							    if (gimple_simplify_102 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
							{
							  {
/* #line 794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o21, o30, op1 };
							    if (gimple_simplify_102 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_XOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
				    {
				      {
/* #line 809 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o41 };
					if (gimple_simplify_182 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
				    {
				      {
/* #line 809 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o40 };
					if (gimple_simplify_182 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
				    {
				      {
/* #line 809 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o31 };
					if (gimple_simplify_182 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
				    {
				      {
/* #line 809 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o31, op0, o30 };
					if (gimple_simplify_182 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
							{
							  {
/* #line 820 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
							    if (gimple_simplify_75 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
						    {
						      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
							{
							  {
/* #line 820 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
							    if (gimple_simplify_75 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_220 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
					    if (gimple_simplify_318 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					      return true;
					  }
				        }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
					{
					  {
/* #line 815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
					    if (gimple_simplify_318 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
					    if (gimple_simplify_318 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
					      return true;
					  }
				        }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
					{
					  {
/* #line 815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
					    if (gimple_simplify_318 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      CASE_CONVERT:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
					if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
					if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o21, 0))
		    {
		      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
			if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o20, 0))
		    {
		      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
			if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o21 };
					    if (gimple_simplify_309 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					      return true;
					  }
				        }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
					{
					  {
/* #line 815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { op1, o21, o20 };
					    if (gimple_simplify_309 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case BIT_NOT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_XOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
							{
							  {
/* #line 820 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
							    if (gimple_simplify_311 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
							{
							  {
/* #line 820 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op1 };
							    if (gimple_simplify_311 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o21 };
					    if (gimple_simplify_309 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
					      return true;
					  }
				        }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
					{
					  {
/* #line 815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { op1, o21, o20 };
					    if (gimple_simplify_309 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (integer_all_onesp (op1))
    {
      {
/* #line 910 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 910, __FILE__, __LINE__);
	tree tem;
	tem = captures[1];
	res_op->set_value (tem);
	return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 915 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 915, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
						    {
						      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[1] ATTRIBUTE_UNUSED = { o20 };
							if (gimple_simplify_220 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == o30 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
						    {
						      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[1] ATTRIBUTE_UNUSED = { o30 };
							if (gimple_simplify_220 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
						  switch (TREE_CODE (o50))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o50))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o60 = gimple_assign_rhs1 (def);
								  o60 = do_valueize (valueize, o60);
								  {
/* #line 1078 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 };
								    if (gimple_simplify_130 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  {
/* #line 1078 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
						    if (gimple_simplify_130 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_AND_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if (tree_swap_operands_p (o70, o71))
								    std::swap (o70, o71);
								  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o30, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
									  return true;
								      }
								    }
								  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o30, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
									  return true;
								      }
								    }
								  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o31, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
									  return true;
								      }
								    }
								  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o31, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
									  return true;
								      }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
						    {
						      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
							if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
						    {
						      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
							if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
					if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o30, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
					if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  if (tree_swap_operands_p (o50, o51))
						    std::swap (o50, o51);
						  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
						    {
						      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { op1, o50, o51, o20 };
							if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
						    {
						      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { op1, o51, o50, o20 };
							if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o20, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, o20 };
					if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, o20, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, o20 };
					if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_220 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
				    {
				      {
/* #line 970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o41 };
					if (gimple_simplify_128 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
				    {
				      {
/* #line 970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o40 };
					if (gimple_simplify_128 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 949 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_225 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
				    {
				      {
/* #line 970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o30, o20, o31 };
					if (gimple_simplify_128 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
				    {
				      {
/* #line 970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o31, o20, o30 };
					if (gimple_simplify_128 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
								    {
								      if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
									{
									  {
/* #line 975 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[3] ATTRIBUTE_UNUSED = { o60, o30, o31 };
									    if (gimple_simplify_45 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
								  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
								    {
								      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
									{
									  {
/* #line 975 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[3] ATTRIBUTE_UNUSED = { o60, o31, o30 };
									    if (gimple_simplify_45 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o30 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o30, 0) && types_match (o80, o30)))
									{
									  {
/* #line 975 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[3] ATTRIBUTE_UNUSED = { o61, o30, o31 };
									    if (gimple_simplify_45 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o31 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o31, 0) && types_match (o80, o31)))
									{
									  {
/* #line 975 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[3] ATTRIBUTE_UNUSED = { o61, o31, o30 };
									    if (gimple_simplify_45 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						      if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
							{
							  {
/* #line 985 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[5] ATTRIBUTE_UNUSED = { op1, o30, o31, op0, o20 };
							    if (gimple_simplify_236 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      case BIT_XOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
							{
							  {
/* #line 995 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[5] ATTRIBUTE_UNUSED = { op1, o30, o31, op0, o20 };
							    if (gimple_simplify_241 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 1003 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o41, op0 };
					if (gimple_simplify_245 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
				    {
				      {
/* #line 1003 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op0 };
					if (gimple_simplify_245 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  {
/* #line 1078 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
						    if (gimple_simplify_130 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 1078 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_130 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_IOR_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if (tree_swap_operands_p (o70, o71))
								    std::swap (o70, o71);
								  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
								    {
								      if ((o71 == o21 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o21, 0) && types_match (o71, o21)))
									{
									  {
/* #line 975 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 };
									    if (gimple_simplify_320 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
								  if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
								    {
								      if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
									{
									  {
/* #line 975 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 };
									    if (gimple_simplify_320 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_IOR_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if (tree_swap_operands_p (o70, o71))
								    std::swap (o70, o71);
								  if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
								    {
								      if ((o71 == o20 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o20, 0) && types_match (o71, o20)))
									{
									  {
/* #line 975 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[3] ATTRIBUTE_UNUSED = { o21, o40, o20 };
									    if (gimple_simplify_320 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
								  if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
								    {
								      if ((o71 == o40 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o40, 0) && types_match (o71, o40)))
									{
									  {
/* #line 975 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[3] ATTRIBUTE_UNUSED = { o21, o40, o20 };
									    if (gimple_simplify_320 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
							{
							  {
/* #line 985 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
							    if (gimple_simplify_236 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1003 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
					if (gimple_simplify_188 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1003 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op1 };
					if (gimple_simplify_188 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1021 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_252 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o21, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
							{
							  {
/* #line 995 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
							    if (gimple_simplify_241 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1021 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_252 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, op0 };
					if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, op0 };
					if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
		    {
		      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o31, op0 };
			if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
		    {
		      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o31, o30, op0 };
			if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_IOR_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if (tree_swap_operands_p (o70, o71))
								    std::swap (o70, o71);
								  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
								    {
								      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o71 };
									if (gimple_simplify_136 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
									  return true;
								      }
								    }
								  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
								    {
								      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o70 };
									if (gimple_simplify_136 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
									  return true;
								      }
								    }
								  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
								    {
								      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o71 };
									if (gimple_simplify_136 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
									  return true;
								      }
								    }
								  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
								    {
								      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o70 };
									if (gimple_simplify_136 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
									  return true;
								      }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o61 };
							if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
						  if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o60 };
							if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o61 };
							if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
						  if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o60 };
							if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 1262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_323 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 1262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    if (gimple_simplify_323 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
		      return true;
		  }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o61 };
							if (gimple_simplify_100 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
						  if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o60 };
							if (gimple_simplify_100 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o61 };
							if (gimple_simplify_100 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
						  if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o60 };
							if (gimple_simplify_100 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o51 };
					if (gimple_simplify_4 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o50 };
					if (gimple_simplify_4 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o51 };
					if (gimple_simplify_4 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o50 };
					if (gimple_simplify_4 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1289 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_202 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 1289 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_202 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
				    {
				      {
/* #line 1294 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
					if (gimple_simplify_9 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
						    {
						      {
/* #line 1409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o30, op1, o60 };
							if (gimple_simplify_43 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      {
/* #line 1409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o30, op1, o61 };
							if (gimple_simplify_43 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
				    {
				      {
/* #line 1294 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
					if (gimple_simplify_9 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
						    {
						      {
/* #line 1409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o40, op1, o60 };
							if (gimple_simplify_43 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      {
/* #line 1409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o40, op1, o61 };
							if (gimple_simplify_43 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  switch (TREE_CODE (o51))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o51))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o70 = gimple_assign_rhs1 (def);
						  o70 = do_valueize (valueize, o70);
						  if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
						    {
						      {
/* #line 1409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[5] ATTRIBUTE_UNUSED = { op1, o50, o21, op0, o20 };
							if (gimple_simplify_43 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
						    {
						      {
/* #line 1409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[5] ATTRIBUTE_UNUSED = { op1, o50, o20, op0, o21 };
							if (gimple_simplify_43 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      {
/* #line 1409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[5] ATTRIBUTE_UNUSED = { op1, o51, o21, op0, o20 };
							if (gimple_simplify_43 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      {
/* #line 1409 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[5] ATTRIBUTE_UNUSED = { op1, o51, o20, op0, o21 };
							if (gimple_simplify_43 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1289 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
			if (gimple_simplify_202 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 1289 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_202 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
				    {
				      {
/* #line 1294 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
					if (gimple_simplify_9 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o31))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o31))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
				    {
				      {
/* #line 1294 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
					if (gimple_simplify_9 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (CONSTANT_CLASS_P (o21))
		    {
		      if (CONSTANT_CLASS_P (op1))
			{
			  {
/* #line 1305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_205 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 1705 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_257 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_IOR_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case UNORDERED_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((o21 == o20 && ! TREE_SIDE_EFFECTS (o21)) || (operand_equal_p (o21, o20, 0) && types_match (o21, o20)))
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case UNORDERED_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      if ((o51 == o50 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o50, 0) && types_match (o51, o50)))
					{
					  {
/* #line 3610 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
/* #line 3610 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (types_match (captures[0], captures[1]))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3611, __FILE__, __LINE__);
						res_op->set_op (UNORDERED_EXPR, type, 2);
						res_op->ops[0] = captures[0];
						res_op->ops[1] = captures[1];
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				        }
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  {
/* #line 3618 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o51 };
					    if (gimple_simplify_71 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
					{
					  {
/* #line 3618 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
					    if (gimple_simplify_71 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case UNORDERED_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
					{
					  {
/* #line 3618 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
					    if (gimple_simplify_16 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3618 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o21, op0, o20 };
					    if (gimple_simplify_16 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case GE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case LT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      case GT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									  {
									    if ((o81 == o31 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o31, 0) && types_match (o81, o31)))
									      {
										if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o21 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o21, 0) && types_match (o90, o21)))
									      {
										if ((o91 == o31 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o31, 0) && types_match (o91, o31)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case GT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case GE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR))
					      return true;
					  }
				        }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      case NE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case LE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									  {
									    if ((o81 == o31 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o31, 0) && types_match (o81, o31)))
									      {
										if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o21 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o21, 0) && types_match (o90, o21)))
									      {
										if ((o91 == o31 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o31, 0) && types_match (o91, o31)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case EQ_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case LE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, LE_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case GE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, GE_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case GE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, GE_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case LT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case LE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR))
					      return true;
					  }
				        }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      case GE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GE_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LE_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									  {
									    if ((o81 == o41 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o41, 0) && types_match (o81, o41)))
									      {
										if ((o71 == o40 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o40, 0) && types_match (o71, o40)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o20 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o20, 0) && types_match (o90, o20)))
									      {
										if ((o91 == o41 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o41, 0) && types_match (o91, o41)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case GT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case LE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case GT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      case LT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, GT_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LT_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									  {
									    if ((o81 == o41 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o41, 0) && types_match (o81, o41)))
									      {
										if ((o71 == o40 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o40, 0) && types_match (o71, o40)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o20 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o20, 0) && types_match (o90, o20)))
									      {
										if ((o91 == o41 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o41, 0) && types_match (o91, o41)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case EQ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3629 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_168 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_logical_inverted_value (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	{
	  if (gimple_truth_valued_p (op1, valueize))
	    {
	      {
/* #line 1354 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		if (gimple_simplify_234 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
		  return true;
	      }
	    }
        }
}
}
if (gimple_truth_valued_p (op0, valueize))
  {
    {
      tree op1_pops[1];
      if (gimple_logical_inverted_value (op1, op1_pops, valueize))
        {
	  tree o30 = op1_pops[0];
	  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	    {
	      {
/* #line 1354 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		if (gimple_simplify_234 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
		  return true;
	      }
	    }
}
    }
  }
  return false;
}

static bool
gimple_simplify_BIT_XOR_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 130 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 130, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
								    {
								      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
								    {
								      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									{
									  {
/* #line 780 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
									    if (gimple_simplify_81 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case BIT_AND_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 783 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o30, o61, o21 };
								    if (gimple_simplify_304 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      {
/* #line 799 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
							if (gimple_simplify_180 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case BIT_AND_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					switch (TREE_CODE (o50))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o50))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case BIT_NOT_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
							  {
							    switch (TREE_CODE (o51))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 783 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
								    if (gimple_simplify_304 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      {
/* #line 799 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o30 };
							if (gimple_simplify_180 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      switch (TREE_CODE (o41))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o41))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case BIT_NOT_EXPR:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      {
/* #line 799 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o60 };
							if (gimple_simplify_180 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				    }
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
						    {
						      {
/* #line 799 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o50 };
							if (gimple_simplify_180 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_220 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
						    {
						      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[1] ATTRIBUTE_UNUSED = { o20 };
							if (gimple_simplify_220 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == o30 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
						    {
						      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[1] ATTRIBUTE_UNUSED = { o30 };
							if (gimple_simplify_220 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							switch (TREE_CODE (o60))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o60))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case BIT_AND_EXPR:
								      {
									tree o70 = gimple_assign_rhs1 (def);
									o70 = do_valueize (valueize, o70);
									tree o71 = gimple_assign_rhs2 (def);
									o71 = do_valueize (valueize, o71);
									if (tree_swap_operands_p (o70, o71))
									  std::swap (o70, o71);
									switch (TREE_CODE (o71))
									  {
									  case INTEGER_CST:
									    {
									      {
/* #line 1090 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, o60, o70, o71 };
										if (gimple_simplify_61 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
										  return true;
									      }
									      break;
									    }
								          default:;
								          }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case BIT_AND_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							switch (TREE_CODE (o61))
							  {
							  case INTEGER_CST:
							    {
							      {
/* #line 1090 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								tree captures[6] ATTRIBUTE_UNUSED = { o20, o30, o31, op1, o60, o61 };
								if (gimple_simplify_61 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
								  return true;
							      }
							      break;
							    }
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
						    {
						      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
							if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
						    {
						      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 };
							if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o30, 0))
				    {
				      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o30 };
					if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
				    {
				      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o31 };
					if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  if (tree_swap_operands_p (o50, o51))
						    std::swap (o50, o51);
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
						    {
						      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
							if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
						    {
						      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o51, o50, o20 };
							if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, o20, 0))
				    {
				      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, o20 };
					if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o20, 0))
				    {
				      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, o20 };
					if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 928 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_220 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 933 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 933, __FILE__, __LINE__);
	tree tem;
	tem =  build_zero_cst (type);
	res_op->set_value (tem);
	return true;
      }
    }
  if (integer_all_onesp (op1))
    {
      {
/* #line 938 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 938, __FILE__, __LINE__);
	res_op->set_op (BIT_NOT_EXPR, type, 1);
	res_op->ops[0] = captures[0];
	gimple_resimplify1 (lseq, res_op, valueize);
	return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case BIT_NOT_EXPR:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
							{
							  {
/* #line 980 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
							    if (gimple_simplify_177 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				    }
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
							{
							  {
/* #line 980 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
							    if (gimple_simplify_177 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
							{
							  {
/* #line 980 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
							    if (gimple_simplify_177 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case BIT_NOT_EXPR:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
							{
							  {
/* #line 980 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
							    if (gimple_simplify_177 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
							{
							  {
/* #line 980 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
							    if (gimple_simplify_177 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
							{
							  {
/* #line 980 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
							    if (gimple_simplify_177 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
							{
							  {
/* #line 980 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o21, o30 };
							    if (gimple_simplify_177 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									{
									  {
/* #line 1070 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
									    if (gimple_simplify_276 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
								    {
								      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
									{
									  {
/* #line 1070 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
									    if (gimple_simplify_276 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case BIT_XOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
							{
							  {
/* #line 990 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o21, op1 };
							    if (gimple_simplify_239 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
							{
							  {
/* #line 980 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
							    if (gimple_simplify_177 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      case BIT_XOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
							{
							  {
/* #line 990 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o40, o20, op1 };
							    if (gimple_simplify_239 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1008 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_247 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_249 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									{
									  {
/* #line 1070 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
									    if (gimple_simplify_276 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
								    {
								      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
									{
									  {
/* #line 1070 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
									    if (gimple_simplify_276 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
				    {
				      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o20 };
					if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
				    {
				      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o21 };
					if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o20, 0))
		    {
		      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o20 };
			if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o21, 0))
		    {
		      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o21 };
			if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
							{
							  {
/* #line 990 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op1, o20, o21, op0 };
							    if (gimple_simplify_239 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case BIT_NOT_EXPR:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
							{
							  {
/* #line 990 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op1, o20, o21, op0 };
							    if (gimple_simplify_239 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_249 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1021 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_252 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      CASE_CONVERT:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
				    {
				      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
					if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
				    {
				      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o20 };
					if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o21, 0))
		    {
		      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
			if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o20, 0))
		    {
		      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o20 };
			if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1008 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_247 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 1021 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_252 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					switch (TREE_CODE (o50))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o50))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case BIT_AND_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							switch (TREE_CODE (o61))
							  {
							  case INTEGER_CST:
							    {
							      {
/* #line 1090 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o50, o60, o61 };
								if (gimple_simplify_61 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
								  return true;
							      }
							      break;
							    }
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    case BIT_AND_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					switch (TREE_CODE (o51))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 1090 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50, o51 };
						if (gimple_simplify_61 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
				    {
				      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, op0 };
					if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
				    {
				      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, op0 };
					if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
		    {
		      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
			if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
		    {
		      {
/* #line 1098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, op0 };
			if (gimple_simplify_208 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  switch (TREE_CODE (o50))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o50))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o60 = gimple_assign_rhs1 (def);
								  o60 = do_valueize (valueize, o60);
								  {
/* #line 1104 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 };
								    if (gimple_simplify_24 (res_op, seq, valueize, type, captures))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  {
/* #line 1104 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
						    if (gimple_simplify_24 (res_op, seq, valueize, type, captures))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    case INTEGER_CST:
				      {
					{
/* #line 1111 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[2] ATTRIBUTE_UNUSED = { o30, op1 };
					  if (gimple_simplify_148 (res_op, seq, valueize, type, captures))
					    return true;
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  {
/* #line 1104 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
						    if (gimple_simplify_24 (res_op, seq, valueize, type, captures))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 1104 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_24 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case INTEGER_CST:
		      {
			{
/* #line 1111 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_148 (res_op, seq, valueize, type, captures))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 1119 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_289 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1119 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
			if (gimple_simplify_289 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o21, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 1119 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
			if (gimple_simplify_289 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1119 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
			if (gimple_simplify_289 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_AND_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if (tree_swap_operands_p (o70, o71))
								    std::swap (o70, o71);
								  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o30, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
									  return true;
								      }
								    }
								  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o30, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
									  return true;
								      }
								    }
								  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o31, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
									  return true;
								      }
								    }
								  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o31, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, BIT_AND_EXPR))
									  return true;
								      }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
						    {
						      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
							if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
						    {
						      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o30 };
							if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
				    {
				      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
					if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o30, 0))
				    {
				      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o30 };
					if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_XOR_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  if (tree_swap_operands_p (o50, o51))
						    std::swap (o50, o51);
						  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
						    {
						      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o50, o51, o20 };
							if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
						    {
						      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o51, o50, o20 };
							if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o20, 0))
				    {
				      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, o20 };
					if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, o20, 0))
				    {
				      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, o20 };
					if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_XOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
				    {
				      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o40, o41, op0 };
					if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
				    {
				      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o41, o40, op0 };
					if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
		    {
		      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
			if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
		    {
		      {
/* #line 1145 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, op0 };
			if (gimple_simplify_297 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_XOR_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if (tree_swap_operands_p (o70, o71))
								    std::swap (o70, o71);
								  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
								    {
								      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o71 };
									if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
									  return true;
								      }
								    }
								  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
								    {
								      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o70 };
									if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
									  return true;
								      }
								    }
								  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
								    {
								      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o71 };
									if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
									  return true;
								      }
								    }
								  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
								    {
								      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o70 };
									if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
									  return true;
								      }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case BIT_XOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o61 };
							if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
						    {
						      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o60 };
							if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
						    {
						      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o61 };
							if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
						    {
						      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o31, o30, o60 };
							if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 1262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_323 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 1262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    if (gimple_simplify_323 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
		      return true;
		  }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_XOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o61 };
							if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
						    {
						      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o60 };
							if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o61 };
							if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
						  if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
						    {
						      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o60 };
							if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1160 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_95 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if (CONSTANT_CLASS_P (o21))
		    {
		      if (CONSTANT_CLASS_P (op1))
			{
			  {
/* #line 1305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_205 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_logical_inverted_value (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	{
	  if (gimple_truth_valued_p (op1, valueize))
	    {
	      {
/* #line 1354 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		if (gimple_simplify_234 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
		  return true;
	      }
	    }
        }
}
}
{
  tree op0_pops[1];
  if (gimple_nop_convert (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case SSA_NAME:
	  if (gimple *def_stmt = get_def (valueize, o20))
	    {
	      if (gassign *def = dyn_cast <gassign *> (def_stmt))
	        switch (gimple_assign_rhs_code (def))
		  {
		  case BIT_NOT_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      {
/* #line 1403 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, op1 };
			if (gimple_simplify_271 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		      break;
		    }
		  default:;
		  }
	    }
	  break;
        default:;
        }
}
}
if (gimple_truth_valued_p (op0, valueize))
  {
    {
      tree op1_pops[1];
      if (gimple_logical_inverted_value (op1, op1_pops, valueize))
        {
	  tree o30 = op1_pops[0];
	  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	    {
	      {
/* #line 1354 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		if (gimple_simplify_234 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
		  return true;
	      }
	    }
}
    }
  }
  {
    tree op1_pops[1];
    if (gimple_nop_convert (op1, op1_pops, valueize))
      {
	tree o30 = op1_pops[0];
	switch (TREE_CODE (o30))
	  {
	  case SSA_NAME:
	    if (gimple *def_stmt = get_def (valueize, o30))
	      {
		if (gassign *def = dyn_cast <gassign *> (def_stmt))
		  switch (gimple_assign_rhs_code (def))
		    {
		    case BIT_NOT_EXPR:
		      {
			tree o40 = gimple_assign_rhs1 (def);
			o40 = do_valueize (valueize, o40);
			{
/* #line 1403 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o40, op0 };
			  if (gimple_simplify_271 (res_op, seq, valueize, type, captures))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	      }
	    break;
          default:;
          }
}
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 1705 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_257 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, BIT_XOR_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case LT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR, UNGE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case LE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR, UNGT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case EQ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR, NE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case NE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR, EQ_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case GE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, GE_EXPR, LT_EXPR, UNLT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case GT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR, UNLE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case UNORDERED_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case ORDERED_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case UNLT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, UNLT_EXPR, GE_EXPR, GE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case UNLE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, UNLE_EXPR, GT_EXPR, GT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case UNGT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, UNGT_EXPR, LE_EXPR, LE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case UNGE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, UNGE_EXPR, LT_EXPR, LT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case UNEQ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case LTGT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_truep (op1))
		    {
		      {
/* #line 3182 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_151 (res_op, seq, valueize, type, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_POINTER_DIFF_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_zerop (op1))
    {
      {
/* #line 140 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 140, __FILE__, __LINE__);
	res_op->set_op (NOP_EXPR, type, 1);
	res_op->ops[0] = captures[0];
	gimple_resimplify1 (lseq, res_op, valueize);
	return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, op0, 0))
    {
      {
/* #line 166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 166, __FILE__, __LINE__);
	tree tem;
	tem =  build_zero_cst (type);
	res_op->set_value (tem);
	return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case ADDR_EXPR:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o40 = gimple_assign_rhs1 (def);
					o40 = do_valueize (valueize, o40);
					{
/* #line 1785 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 1785 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1])) && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3])))
					    {
					      {
/* #line 1787 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 diff;
/* #line 1788 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  if (ptr_difference_const (captures[1], captures[3], &diff))
						    {
						      gimple_seq *lseq = seq;
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1789, __FILE__, __LINE__);
						      tree tem;
						      tem =  build_int_cst_type (type, diff);
						      res_op->set_value (tem);
						      return true;
						    }
					      }
					    }
					}
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			{
/* #line 1785 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
/* #line 1785 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1])) && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3])))
			    {
			      {
/* #line 1787 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 diff;
/* #line 1788 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (ptr_difference_const (captures[1], captures[3], &diff))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1789, __FILE__, __LINE__);
				      tree tem;
				      tem =  build_int_cst_type (type, diff);
				      res_op->set_value (tem);
				      return true;
				    }
			      }
			    }
			}
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case ADDR_EXPR:
				      {
					{
/* #line 1792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 1792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1])) && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3])))
					    {
					      {
/* #line 1794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 diff;
/* #line 1795 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  if (ptr_difference_const (captures[1], captures[3], &diff))
						    {
						      gimple_seq *lseq = seq;
						      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1796, __FILE__, __LINE__);
						      tree tem;
						      tem =  build_int_cst_type (type, diff);
						      res_op->set_value (tem);
						      return true;
						    }
					      }
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case ADDR_EXPR:
		      {
			{
/* #line 1792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
/* #line 1792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1])) && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3])))
			    {
			      {
/* #line 1794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 diff;
/* #line 1795 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (ptr_difference_const (captures[1], captures[3], &diff))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1796, __FILE__, __LINE__);
				      tree tem;
				      tem =  build_int_cst_type (type, diff);
				      res_op->set_value (tem);
				      return true;
				    }
			      }
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    if (gimple *def_stmt = get_def (valueize, op1))
	      {
		if (gassign *def = dyn_cast <gassign *> (def_stmt))
		  switch (gimple_assign_rhs_code (def))
		    {
		    CASE_CONVERT:
		      {
			tree o30 = gimple_assign_rhs1 (def);
			o30 = do_valueize (valueize, o30);
			{
/* #line 1785 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, op1, o30 };
/* #line 1785 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1])) && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3])))
			    {
			      {
/* #line 1787 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 diff;
/* #line 1788 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (ptr_difference_const (captures[1], captures[3], &diff))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1789, __FILE__, __LINE__);
				      tree tem;
				      tem =  build_int_cst_type (type, diff);
				      res_op->set_value (tem);
				      return true;
				    }
			      }
			    }
			}
		        break;
		      }
		    default:;
		    }
	      }
	    break;
          default:;
          }
	{
/* #line 1785 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, op1, op1 };
/* #line 1785 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1])) && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3])))
	    {
	      {
/* #line 1787 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 diff;
/* #line 1788 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (ptr_difference_const (captures[1], captures[3], &diff))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1789, __FILE__, __LINE__);
		      tree tem;
		      tem =  build_int_cst_type (type, diff);
		      res_op->set_value (tem);
		      return true;
		    }
	      }
	    }
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case ADDR_EXPR:
		      {
			{
/* #line 1792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, op1, o30 };
/* #line 1792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1])) && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3])))
			    {
			      {
/* #line 1794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 diff;
/* #line 1795 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (ptr_difference_const (captures[1], captures[3], &diff))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1796, __FILE__, __LINE__);
				      tree tem;
				      tem =  build_int_cst_type (type, diff);
				      res_op->set_value (tem);
				      return true;
				    }
			      }
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case ADDR_EXPR:
      {
	{
/* #line 1792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[4] ATTRIBUTE_UNUSED = { op0, op0, op1, op1 };
/* #line 1792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (tree_nop_conversion_p (TREE_TYPE(captures[0]), TREE_TYPE (captures[1])) && tree_nop_conversion_p (TREE_TYPE(captures[2]), TREE_TYPE (captures[3])))
	    {
	      {
/* #line 1794 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 poly_int64 diff;
/* #line 1795 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (ptr_difference_const (captures[1], captures[3], &diff))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1796, __FILE__, __LINE__);
		      tree tem;
		      tem =  build_int_cst_type (type, diff);
		      res_op->set_value (tem);
		      return true;
		    }
	      }
	    }
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case POINTER_PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o20, 0))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o20 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (!TYPE_SATURATING (type))
			  {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
			      {
				{
/* #line 2030 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[1]));
				    gimple_seq *lseq = seq;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2034, __FILE__, __LINE__);
				    res_op->set_op (NOP_EXPR, type, 1);
				    {
				      tree ops1[1], res;
				      ops1[0] = captures[1];
				      gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, stype, ops1[0]);
				      gimple_resimplify1 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				}
			      }
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case POINTER_PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
		    {
		      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op0 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (!TYPE_SATURATING (type))
			  {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
			      {
				{
/* #line 2077 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[1]));
				    gimple_seq *lseq = seq;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2081, __FILE__, __LINE__);
				    res_op->set_op (NEGATE_EXPR, type, 1);
				    {
				      tree ops1[1], res;
				      {
					tree ops2[1], res;
					ops2[0] = captures[1];
					gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, stype, ops2[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					ops1[0] = res;
				      }
				      if (type != TREE_TYPE (ops1[0])
				          && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					{
					  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
				        }
				      else
				        res = ops1[0];
				      res_op->ops[0] = res;
				    }
				    gimple_resimplify1 (lseq, res_op, valueize);
				    return true;
				}
			      }
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case POINTER_PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
				    {
				      {
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
/* #line 1817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (!TYPE_SATURATING (type))
					  {
/* #line 1875 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if ((!FLOAT_TYPE_P (type) || flag_associative_math) && !FIXED_POINT_TYPE_P (type))
					      {
						{
/* #line 2131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree stype = signed_type_for (TREE_TYPE (captures[1]));
						    gimple_seq *lseq = seq;
						    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2135, __FILE__, __LINE__);
						    res_op->set_op (MINUS_EXPR, type, 2);
						    {
						      tree ops1[1], res;
						      {
							tree ops2[1], res;
							ops2[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, stype, ops2[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops1[0] = res;
						      }
						      if (type != TREE_TYPE (ops1[0])
						          && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
							{
							  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
							  gimple_resimplify1 (lseq, &tem_op, valueize);
							  res = maybe_push_res_to_seq (&tem_op, lseq);
							  if (!res) return false;
						        }
						      else
						        res = ops1[0];
						      res_op->ops[0] = res;
						    }
						    {
						      tree ops1[1], res;
						      {
							tree ops2[1], res;
							ops2[0] = captures[2];
							gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, stype, ops2[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops1[0] = res;
						      }
						      if (type != TREE_TYPE (ops1[0])
						          && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
							{
							  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
							  gimple_resimplify1 (lseq, &tem_op, valueize);
							  res = maybe_push_res_to_seq (&tem_op, lseq);
							  if (!res) return false;
						        }
						      else
						        res = ops1[0];
						      res_op->ops[1] = res;
						    }
						    gimple_resimplify2 (lseq, res_op, valueize);
						    return true;
						}
					      }
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_zerop (op0))
  {
    {
/* #line 2782 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op1 };
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2782, __FILE__, __LINE__);
      res_op->set_op (NEGATE_EXPR, type, 1);
      {
	tree ops1[1], res;
	ops1[0] = captures[0];
	if (type != TREE_TYPE (ops1[0])
	    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
	  {
	    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
	    gimple_resimplify1 (lseq, &tem_op, valueize);
	    res = maybe_push_res_to_seq (&tem_op, lseq);
	    if (!res) return false;
	  }
	else
	  res = ops1[0];
	res_op->ops[0] = res;
      }
      gimple_resimplify1 (lseq, res_op, valueize);
      return true;
    }
  }
  return false;
}

static bool
gimple_simplify_MULT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF16:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF32:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF64:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF128:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF32X:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF64X:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF128X:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case CFN_COPYSIGN:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			    if (gimple_simplify_213 (res_op, seq, valueize, type, captures, CFN_COPYSIGN))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case VECTOR_CST:
      {
	{
/* #line 202 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 202 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (initializer_each_zero_or_onep (captures[1]) && !HONOR_SNANS (type) && !HONOR_SIGNED_ZEROS (type))
	    {
	      {
/* #line 205 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree itype = FLOAT_TYPE_P (type) ? unsigned_type_for (type) : type;
/* #line 206 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (itype && (!VECTOR_MODE_P (TYPE_MODE (type)) || (VECTOR_MODE_P (TYPE_MODE (itype)) && optab_handler (and_optab, TYPE_MODE (itype)) != CODE_FOR_nothing)))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 211, __FILE__, __LINE__);
		      res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
		      {
			tree ops1[2], res;
			{
			  tree ops2[1], res;
			  ops2[0] = captures[0];
			  gimple_match_op tem_op (res_op->cond.any_else (), VIEW_CONVERT_EXPR, itype, ops2[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  ops1[0] = res;
			}
			{
			  tree ops2[2], res;
			  ops2[0] = captures[1];
			  ops2[1] =  build_zero_cst (type);
			  gimple_match_op tem_op (res_op->cond.any_else (), NE_EXPR, itype, ops2[0], ops2[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  ops1[1] = res;
			}
			gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, itype, ops1[0], ops1[1]);
			gimple_resimplify2 (lseq, &tem_op, valueize);
			res = maybe_push_res_to_seq (&tem_op, lseq);
			if (!res) return false;
			res_op->ops[0] = res;
		      }
		      gimple_resimplify1 (lseq, res_op, valueize);
		      return true;
		    }
	      }
	    }
	}
        break;
      }
    default:;
    }
if (integer_zerop (op1))
  {
    {
/* #line 170 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      gimple_seq *lseq = seq;
      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 170, __FILE__, __LINE__);
      tree tem;
      tem = captures[1];
      res_op->set_value (tem);
      return true;
    }
  }
if (real_zerop (op1))
  {
    {
/* #line 178 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 178 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 179, __FILE__, __LINE__);
	  tree tem;
	  tem = captures[1];
	  res_op->set_value (tem);
	  return true;
	}
    }
  }
if (real_onep (op1))
  {
    {
/* #line 185 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 185 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!HONOR_SNANS (type) && (!HONOR_SIGNED_ZEROS (type) || !COMPLEX_FLOAT_TYPE_P (type)))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 188, __FILE__, __LINE__);
	  tree tem;
	  tem = captures[0];
	  res_op->set_value (tem);
	  return true;
	}
    }
  }
if (real_minus_onep (op1))
  {
    {
/* #line 193 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 193 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!HONOR_SNANS (type) && (!HONOR_SIGNED_ZEROS (type) || !COMPLEX_FLOAT_TYPE_P (type)))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 196, __FILE__, __LINE__);
	  res_op->set_op (NEGATE_EXPR, type, 1);
	  res_op->ops[0] = captures[0];
	  gimple_resimplify1 (lseq, res_op, valueize);
	  return true;
	}
    }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF128:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF32X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF64X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF128X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (real_onep (o20))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o21 };
			    if (gimple_simplify_36 (res_op, seq, valueize, type, captures, CFN_COPYSIGN))
			      return true;
			  }
		        }
		      switch (TREE_CODE (o21))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o21))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { o40 };
					    if (gimple_simplify_285 (res_op, seq, valueize, type, captures, CFN_COPYSIGN))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF16:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF32:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF64:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF128:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF32X:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF64X:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF128X:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_COPYSIGN:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if (real_onep (o30))
		    {
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case NEGATE_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 257 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
					    if (gimple_simplify_296 (res_op, seq, valueize, type, captures, CFN_COPYSIGN))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_onep (op1))
  {
    {
/* #line 270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_40 (res_op, seq, valueize, type, captures, MULT_EXPR))
        return true;
    }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 350 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				{
/* #line 350 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 wi::overflow_type overflow;
 wide_int mul = wi::mul (wi::to_wide (captures[1]), wi::to_wide (captures[2]), TYPE_SIGN (type), &overflow);
/* #line 357 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (!overflow || TYPE_OVERFLOW_WRAPS (type))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 358, __FILE__, __LINE__);
					res_op->set_op (MULT_EXPR, type, 2);
					res_op->ops[0] = captures[0];
					res_op->ops[1] =  wide_int_to_tree (type, mul);
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				}
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_pow2p (o21))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 579 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 579 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (TYPE_UNSIGNED (TREE_TYPE (captures[0])))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 580, __FILE__, __LINE__);
				res_op->set_op (BIT_AND_EXPR, type, 2);
				res_op->ops[0] = captures[0];
				{
				  tree ops1[1], res;
				  ops1[0] = captures[1];
				  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
				  gimple_resimplify1 (lseq, &tem_op, valueize);
				  res = maybe_push_res_to_seq (&tem_op, lseq);
				  if (!res) return false;
				  res_op->ops[1] = res;
				}
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			      }
			  }
		        }
		    }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 626, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[1];
			res_op->ops[1] = captures[1];
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		    }
	          break;
	        }
	      case ABSU_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 631 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 631, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			{
			  tree ops1[1], res;
			  ops1[0] = captures[1];
			  if (type != TREE_TYPE (ops1[0])
			      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
			    {
			      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
			      gimple_resimplify1 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			    }
			  else
			    res = ops1[0];
			  captures[2] = res;
			}
			res_op->ops[0] = captures[2];
			res_op->ops[1] = captures[2];
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF128:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF32X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF64X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COPYSIGNF128X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 685 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_145 (res_op, seq, valueize, type, captures, CFN_COPYSIGN))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case LSHIFT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (integer_onep (o40))
				    {
				      {
/* #line 703 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o40, o41 };
					if (gimple_simplify_294 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case LSHIFT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (integer_onep (o30))
				    {
				      {
/* #line 703 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, o31 };
					if (gimple_simplify_294 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      case NEGATE_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if (gimple_negate_expr_p (o50, valueize))
						    {
						      {
/* #line 1223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
							if (gimple_simplify_69 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				if (gimple_negate_expr_p (op1, valueize))
				  {
				    {
/* #line 1223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      tree captures[2] ATTRIBUTE_UNUSED = { o30, op1 };
				      if (gimple_simplify_69 (res_op, seq, valueize, type, captures))
				        return true;
				    }
				  }
			          break;
			        }
			      case GT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  {
/* #line 1422 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
				    if (gimple_simplify_47 (res_op, seq, valueize, type, captures, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      case LT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  {
/* #line 1422 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
				    if (gimple_simplify_47 (res_op, seq, valueize, type, captures, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      case GE_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  {
/* #line 1422 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
				    if (gimple_simplify_47 (res_op, seq, valueize, type, captures, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      case LE_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  {
/* #line 1422 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
				    if (gimple_simplify_47 (res_op, seq, valueize, type, captures, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      case EXACT_DIV_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
						    {
						      {
/* #line 2737 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
							if (gimple_simplify_173 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
				    {
				      {
/* #line 2737 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, o31 };
					if (gimple_simplify_173 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      case PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  switch (TREE_CODE (o40))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o40))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case EXACT_DIV_EXPR:
							        {
								  tree o50 = gimple_assign_rhs1 (def);
								  o50 = do_valueize (valueize, o50);
								  tree o51 = gimple_assign_rhs2 (def);
								  o51 = do_valueize (valueize, o51);
								  switch (TREE_CODE (o51))
								    {
								    case INTEGER_CST:
								      {
									switch (TREE_CODE (o31))
									  {
									  case INTEGER_CST:
									    {
									      if ((op1 == o51 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o51, 0))
										{
										  {
/* #line 2743 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										    tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, o31, o51 };
										    if (gimple_simplify_317 (res_op, seq, valueize, type, captures, PLUS_EXPR))
										      return true;
										  }
									        }
									      break;
									    }
								          default:;
								          }
								        break;
								      }
								    default:;
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case EXACT_DIV_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  tree o41 = gimple_assign_rhs2 (def);
						  o41 = do_valueize (valueize, o41);
						  switch (TREE_CODE (o41))
						    {
						    case INTEGER_CST:
						      {
							switch (TREE_CODE (o31))
							  {
							  case INTEGER_CST:
							    {
							      if ((op1 == o41 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o41, 0))
								{
								  {
/* #line 2743 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, o31, o41 };
								    if (gimple_simplify_317 (res_op, seq, valueize, type, captures, PLUS_EXPR))
								      return true;
								  }
							        }
							      break;
							    }
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case MINUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  switch (TREE_CODE (o40))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o40))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case EXACT_DIV_EXPR:
							        {
								  tree o50 = gimple_assign_rhs1 (def);
								  o50 = do_valueize (valueize, o50);
								  tree o51 = gimple_assign_rhs2 (def);
								  o51 = do_valueize (valueize, o51);
								  switch (TREE_CODE (o51))
								    {
								    case INTEGER_CST:
								      {
									switch (TREE_CODE (o31))
									  {
									  case INTEGER_CST:
									    {
									      if ((op1 == o51 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o51, 0))
										{
										  {
/* #line 2743 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										    tree captures[4] ATTRIBUTE_UNUSED = { o50, o51, o31, o51 };
										    if (gimple_simplify_317 (res_op, seq, valueize, type, captures, MINUS_EXPR))
										      return true;
										  }
									        }
									      break;
									    }
								          default:;
								          }
								        break;
								      }
								    default:;
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case EXACT_DIV_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  tree o41 = gimple_assign_rhs2 (def);
						  o41 = do_valueize (valueize, o41);
						  switch (TREE_CODE (o41))
						    {
						    case INTEGER_CST:
						      {
							switch (TREE_CODE (o31))
							  {
							  case INTEGER_CST:
							    {
							      if ((op1 == o41 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o41, 0))
								{
								  {
/* #line 2743 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, o31, o41 };
								    if (gimple_simplify_317 (res_op, seq, valueize, type, captures, MINUS_EXPR))
								      return true;
								  }
							        }
							      break;
							    }
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (gimple_negate_expr_p (o20, valueize))
		  {
		    switch (TREE_CODE (op1))
		      {
		      case SSA_NAME:
		        if (gimple *def_stmt = get_def (valueize, op1))
		          {
			    if (gassign *def = dyn_cast <gassign *> (def_stmt))
			      switch (gimple_assign_rhs_code (def))
				{
				CASE_CONVERT:
				  {
				    tree o40 = gimple_assign_rhs1 (def);
				    o40 = do_valueize (valueize, o40);
				    switch (TREE_CODE (o40))
				      {
				      case SSA_NAME:
				        if (gimple *def_stmt = get_def (valueize, o40))
				          {
					    if (gassign *def = dyn_cast <gassign *> (def_stmt))
					      switch (gimple_assign_rhs_code (def))
						{
						case NEGATE_EXPR:
						  {
						    tree o50 = gimple_assign_rhs1 (def);
						    o50 = do_valueize (valueize, o50);
						    {
/* #line 1223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						      tree captures[2] ATTRIBUTE_UNUSED = { o50, o20 };
						      if (gimple_simplify_69 (res_op, seq, valueize, type, captures))
						        return true;
						    }
						    break;
						  }
						default:;
						}
				          }
				        break;
				      default:;
				      }
				    break;
				  }
				case NEGATE_EXPR:
				  {
				    tree o40 = gimple_assign_rhs1 (def);
				    o40 = do_valueize (valueize, o40);
				    {
/* #line 1223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
				      if (gimple_simplify_69 (res_op, seq, valueize, type, captures))
				        return true;
				    }
				    break;
				  }
				default:;
				}
		          }
		        break;
		      default:;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LSHIFT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (integer_onep (o30))
		    {
		      {
/* #line 703 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
			if (gimple_simplify_294 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LSHIFT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_onep (o20))
		    {
		      {
/* #line 703 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, o21 };
			if (gimple_simplify_294 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case RDIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 723 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
/* #line 723 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (flag_associative_math && single_use (captures[0]))
				  {
				    {
/* #line 725 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = const_binop (MULT_EXPR, type, captures[1], captures[3]);
/* #line 727 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (tem)
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 728, __FILE__, __LINE__);
					    res_op->set_op (RDIV_EXPR, type, 2);
					    res_op->ops[0] =  tem;
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				    }
				  }
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  if (gimple_negate_expr_p (o40, valueize))
				    {
				      {
/* #line 1223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
					if (gimple_simplify_69 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (gimple_negate_expr_p (op1, valueize))
		  {
		    {
/* #line 1223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_69 (res_op, seq, valueize, type, captures))
		        return true;
		    }
		  }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
				    {
				      {
/* #line 2737 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
					if (gimple_simplify_173 (res_op, seq, valueize, type, captures))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o21, 0))
		    {
		      {
/* #line 2737 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o21 };
			if (gimple_simplify_173 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case EXACT_DIV_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  tree o41 = gimple_assign_rhs2 (def);
						  o41 = do_valueize (valueize, o41);
						  switch (TREE_CODE (o41))
						    {
						    case INTEGER_CST:
						      {
							switch (TREE_CODE (o21))
							  {
							  case INTEGER_CST:
							    {
							      if ((op1 == o41 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o41, 0))
								{
								  {
/* #line 2743 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, o21, o41 };
								    if (gimple_simplify_317 (res_op, seq, valueize, type, captures, PLUS_EXPR))
								      return true;
								  }
							        }
							      break;
							    }
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case EXACT_DIV_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (o21))
					  {
					  case INTEGER_CST:
					    {
					      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
						{
						  {
/* #line 2743 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o21, o31 };
						    if (gimple_simplify_317 (res_op, seq, valueize, type, captures, PLUS_EXPR))
						      return true;
						  }
					        }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case EXACT_DIV_EXPR:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  tree o41 = gimple_assign_rhs2 (def);
						  o41 = do_valueize (valueize, o41);
						  switch (TREE_CODE (o41))
						    {
						    case INTEGER_CST:
						      {
							switch (TREE_CODE (o21))
							  {
							  case INTEGER_CST:
							    {
							      if ((op1 == o41 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o41, 0))
								{
								  {
/* #line 2743 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[4] ATTRIBUTE_UNUSED = { o40, o41, o21, o41 };
								    if (gimple_simplify_317 (res_op, seq, valueize, type, captures, MINUS_EXPR))
								      return true;
								  }
							        }
							      break;
							    }
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case EXACT_DIV_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (o21))
					  {
					  case INTEGER_CST:
					    {
					      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
						{
						  {
/* #line 2743 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o21, o31 };
						    if (gimple_simplify_317 (res_op, seq, valueize, type, captures, MINUS_EXPR))
						      return true;
						  }
					        }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (gimple_negate_expr_p (op0, valueize))
  {
    switch (TREE_CODE (op1))
      {
      case SSA_NAME:
        if (gimple *def_stmt = get_def (valueize, op1))
          {
	    if (gassign *def = dyn_cast <gassign *> (def_stmt))
	      switch (gimple_assign_rhs_code (def))
		{
		CASE_CONVERT:
		  {
		    tree o30 = gimple_assign_rhs1 (def);
		    o30 = do_valueize (valueize, o30);
		    switch (TREE_CODE (o30))
		      {
		      case SSA_NAME:
		        if (gimple *def_stmt = get_def (valueize, o30))
		          {
			    if (gassign *def = dyn_cast <gassign *> (def_stmt))
			      switch (gimple_assign_rhs_code (def))
				{
				case NEGATE_EXPR:
				  {
				    tree o40 = gimple_assign_rhs1 (def);
				    o40 = do_valueize (valueize, o40);
				    {
/* #line 1223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      tree captures[2] ATTRIBUTE_UNUSED = { o40, op0 };
				      if (gimple_simplify_69 (res_op, seq, valueize, type, captures))
				        return true;
				    }
				    break;
				  }
				default:;
				}
		          }
		        break;
		      default:;
		      }
		    break;
		  }
		case NEGATE_EXPR:
		  {
		    tree o30 = gimple_assign_rhs1 (def);
		    o30 = do_valueize (valueize, o30);
		    {
/* #line 1223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
		      if (gimple_simplify_69 (res_op, seq, valueize, type, captures))
		        return true;
		    }
		    break;
		  }
		default:;
		}
          }
        break;
      default:;
      }
  }
  if (integer_minus_onep (op1))
    {
      {
/* #line 2795 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2795, __FILE__, __LINE__);
	res_op->set_op (NEGATE_EXPR, type, 1);
	res_op->ops[0] = captures[0];
	gimple_resimplify1 (lseq, res_op, valueize);
	return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 2801 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			  if (gimple_simplify_174 (res_op, seq, valueize, type, captures))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  switch (TREE_CODE (o31))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 2801 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o31, op0 };
			  if (gimple_simplify_174 (res_op, seq, valueize, type, captures))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF))
			  return true;
		      }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4232, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_SQRTF, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT))
			  return true;
		      }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4232, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_SQRT, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL))
			  return true;
		      }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4232, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_SQRTL, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF16))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF32))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF64))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF128:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF128))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF32X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF32X))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF64X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF64X))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF128X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF128X))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
		    {
		      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o20 };
			if (gimple_simplify_218 (res_op, seq, valueize, type, captures, CFN_SQRT))
			  return true;
		      }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4232, __FILE__, __LINE__);
					res_op->set_op (CFN_SQRT, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_CBRTF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4232, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_CBRTF, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_CBRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_CBRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4232, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_CBRT, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_CBRTL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4232, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_CBRTL, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXPF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_EXPF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_EXPF, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POWF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXPF, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_EXP:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_EXP, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POW:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXPL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_EXPL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_EXPL, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POWL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXPL, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_EXP:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_EXP, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_POW:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_EXP, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_EXP2F:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POWF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_EXP2:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_EXP2, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POW:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP2, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_EXP2L:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POWL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_EXP2:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_EXP2, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_POW:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_EXP2, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG2, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_EXP10F:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POWF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_EXP10:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_EXP10, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POW:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP10, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_EXP10L:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POWL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_EXP10:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_EXP10, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_POW:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_EXP10, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG10, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POW10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POW10F:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_POW10F, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POWF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_POW10F, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POW10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POW10:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_POW10, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POW:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_POW10, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POW10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POW10L:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4238, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_POW10L, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      case CFN_BUILT_IN_POWL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_call_arg (def, 1);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case REAL_CST:
				      {
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op1, o40, o41, op0, o20 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_POW10L, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gcall *def = dyn_cast <gcall *> (def_stmt))
				  switch (gimple_call_combined_fn (def))
				    {
				    case CFN_BUILT_IN_EXPF:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXPF, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGF, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_BUILT_IN_EXP2F:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2F, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_BUILT_IN_EXP10F:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_BUILT_IN_POW10F:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_POW10F, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10F, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			      if (gimple_simplify_196 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gcall *def = dyn_cast <gcall *> (def_stmt))
				  switch (gimple_call_combined_fn (def))
				    {
				    case CFN_BUILT_IN_EXP:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_BUILT_IN_EXP2:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP2, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_BUILT_IN_EXP10:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP10, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_BUILT_IN_POW10:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_POW10, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			      if (gimple_simplify_196 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gcall *def = dyn_cast <gcall *> (def_stmt))
				  switch (gimple_call_combined_fn (def))
				    {
				    case CFN_BUILT_IN_EXPL:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXPL, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOGL, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_BUILT_IN_EXP2L:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG2L, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_BUILT_IN_EXP10L:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_BUILT_IN_POW10L:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_BUILT_IN_POW10L, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_LOG10L, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			      if (gimple_simplify_196 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gcall *def = dyn_cast <gcall *> (def_stmt))
				  switch (gimple_call_combined_fn (def))
				    {
				    case CFN_EXP:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_EXP, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_EXP2:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_EXP2, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG2, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    case CFN_EXP10:
				      {
					tree o50 = gimple_call_arg (def, 0);
					o50 = do_valueize (valueize, o50);
					{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (flag_unsafe_math_optimizations)
					    {
/* #line 4374 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0) && real_isfinite (TREE_REAL_CST_PTR (captures[1])))
						{
						  gimple_seq *lseq = seq;
						  if (lseq
						      && (!single_use (captures[0])
						          || !single_use (captures[3])))
						    lseq = NULL;
						  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4376, __FILE__, __LINE__);
						  res_op->set_op (CFN_EXP10, type, 1);
						  {
						    tree ops1[2], res;
						    {
						      tree ops2[2], res;
						      {
							tree ops3[1], res;
							ops3[0] = captures[1];
							gimple_match_op tem_op (res_op->cond.any_else (), CFN_LOG10, TREE_TYPE (ops3[0]), ops3[0]);
							gimple_resimplify1 (lseq, &tem_op, valueize);
							res = maybe_push_res_to_seq (&tem_op, lseq);
							if (!res) return false;
							ops2[0] = res;
						      }
						      ops2[1] = captures[2];
						      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						      gimple_resimplify2 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						      ops1[0] = res;
						    }
						    ops1[1] = captures[4];
						    gimple_match_op tem_op (res_op->cond.any_else (), PLUS_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    res_op->ops[0] = res;
						  }
						  gimple_resimplify1 (lseq, res_op, valueize);
						  return true;
						}
					    }
					}
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			      if (gimple_simplify_196 (res_op, seq, valueize, type, captures, CFN_POW))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_TANF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_COSF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_172 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_TAN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_COS:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_172 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_TANL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_COSL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_172 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_TAN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_COS:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_172 (res_op, seq, valueize, type, captures, CFN_TAN, CFN_COS, CFN_SIN))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COSF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_TANF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
					if (gimple_simplify_172 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COS:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_TAN:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
					if (gimple_simplify_172 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COSL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_TANL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
					if (gimple_simplify_172 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_COS:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_TAN:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op1, o20, op0 };
					if (gimple_simplify_172 (res_op, seq, valueize, type, captures, CFN_TAN, CFN_COS, CFN_SIN))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      switch (TREE_CODE (o31))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			      if (gimple_simplify_196 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF))
			        return true;
			    }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      switch (TREE_CODE (o31))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			      if (gimple_simplify_196 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW))
			        return true;
			    }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      switch (TREE_CODE (o31))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			      if (gimple_simplify_196 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL))
			        return true;
			    }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      case CFN_POW:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      switch (TREE_CODE (o31))
		        {
			case REAL_CST:
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			      if (gimple_simplify_196 (res_op, seq, valueize, type, captures, CFN_POW))
			        return true;
			    }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POWF:
			        {
				  tree o50 = gimple_call_arg (def, 0);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_call_arg (def, 1);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_223 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_113 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POW:
			        {
				  tree o50 = gimple_call_arg (def, 0);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_call_arg (def, 1);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_223 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_113 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POWL:
			        {
				  tree o50 = gimple_call_arg (def, 0);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_call_arg (def, 1);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_223 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_113 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_POW:
			        {
				  tree o50 = gimple_call_arg (def, 0);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_call_arg (def, 1);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_223 (res_op, seq, valueize, type, captures, CFN_POW))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_113 (res_op, seq, valueize, type, captures, CFN_POW))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWIF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POWIF:
			        {
				  tree o50 = gimple_call_arg (def, 0);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_call_arg (def, 1);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (flag_unsafe_math_optimizations && canonicalize_math_p ())
					  {
					    gimple_seq *lseq = seq;
					    if (lseq
					        && (!single_use (captures[0])
					            || !single_use (captures[3])))
					      lseq = NULL;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4568, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_POWIF, type, 2);
					    {
					      tree ops1[2], res;
					      ops1[0] = captures[1];
					      ops1[1] = captures[4];
					      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[0] = res;
					    }
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWI:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POWI:
			        {
				  tree o50 = gimple_call_arg (def, 0);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_call_arg (def, 1);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (flag_unsafe_math_optimizations && canonicalize_math_p ())
					  {
					    gimple_seq *lseq = seq;
					    if (lseq
					        && (!single_use (captures[0])
					            || !single_use (captures[3])))
					      lseq = NULL;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4568, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_POWI, type, 2);
					    {
					      tree ops1[2], res;
					      ops1[0] = captures[1];
					      ops1[1] = captures[4];
					      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[0] = res;
					    }
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWIL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_POWIL:
			        {
				  tree o50 = gimple_call_arg (def, 0);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_call_arg (def, 1);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (flag_unsafe_math_optimizations && canonicalize_math_p ())
					  {
					    gimple_seq *lseq = seq;
					    if (lseq
					        && (!single_use (captures[0])
					            || !single_use (captures[3])))
					      lseq = NULL;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4568, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_POWIL, type, 2);
					    {
					      tree ops1[2], res;
					      ops1[0] = captures[1];
					      ops1[1] = captures[4];
					      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					      gimple_resimplify2 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[0] = res;
					    }
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COPYSIGNF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COPYSIGN (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGN;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGN;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGN))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COPYSIGNL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNL;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNL;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNL))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COPYSIGNF16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF16;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF16;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF16:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF16))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COPYSIGNF32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF32;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF32;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF32:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COPYSIGNF64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF64;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF64;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF64:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COPYSIGNF128 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF128;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF128;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF128:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COPYSIGNF32X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF32X;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF32X;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF32X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF32X))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COPYSIGNF64X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF64X;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF64X;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF64X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF64X))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_COPYSIGNF128X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF128X;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_BUILT_IN_COPYSIGNF128X;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF128X:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COPYSIGNF128X))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_COPYSIGN (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_COPYSIGN;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn copysigns = CFN_COPYSIGN;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 621, __FILE__, __LINE__);
		    res_op->set_op (copysigns, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 263 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_84 (res_op, seq, valueize, type, captures, CFN_COPYSIGN))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 671 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_290 (res_op, seq, valueize, type, captures, CFN_COPYSIGN))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 679 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_142 (res_op, seq, valueize, type, captures, CFN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_134 (res_op, seq, valueize, type, captures, CFN_COPYSIGN))
	  return true;
      }
    }
  if (tree_expr_nonnegative_p (op1))
    {
      {
/* #line 4494 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_152 (res_op, seq, valueize, type, captures, CFN_COPYSIGN))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_TRUNC_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LSHIFT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (integer_onep (o30))
		    {
		      {
/* #line 278 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
/* #line 278 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0])) && (!VECTOR_TYPE_P (type) || target_supports_op_p (type, RSHIFT_EXPR, optab_vector) || target_supports_op_p (type, RSHIFT_EXPR, optab_scalar)))
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 282, __FILE__, __LINE__);
			    res_op->set_op (RSHIFT_EXPR, type, 2);
			    res_op->ops[0] = captures[0];
			    res_op->ops[1] = captures[2];
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_onep (op1))
  {
    {
/* #line 270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
      if (gimple_simplify_40 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
        return true;
    }
  }
  if (integer_zerop (op0))
    {
      {
/* #line 292 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_30 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
	  return true;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 297 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_126 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_282 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_52 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_52 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_175 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_175 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 333 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_198 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
						if (gimple_simplify_275 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_275 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_pow2p (o21))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 570 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 570 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (TYPE_UNSIGNED (TREE_TYPE (captures[0])))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 571, __FILE__, __LINE__);
				res_op->set_op (BIT_AND_EXPR, type, 2);
				res_op->ops[0] = captures[0];
				res_op->ops[1] =  wide_int_to_tree (type, wi::mask (TYPE_PRECISION (type) - wi::exact_log2 (wi::to_wide (captures[1])), false, TYPE_PRECISION (type)));
				gimple_resimplify2 (lseq, res_op, valueize);
				return true;
			      }
			  }
		        }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_161 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_161 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CEIL_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_onep (op1))
    {
      {
/* #line 270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_40 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
	  return true;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 292 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_30 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
	  return true;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 297 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_126 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_282 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_52 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_52 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_175 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_175 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
						if (gimple_simplify_275 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_275 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_161 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_161 (res_op, seq, valueize, type, captures, CEIL_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_FLOOR_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_onep (op1))
    {
      {
/* #line 270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_40 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
	  return true;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 292 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_30 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
	  return true;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 297 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_126 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_282 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_52 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_52 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_175 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_175 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  {
/* #line 324 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 324 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) && TYPE_UNSIGNED (type))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 326, __FILE__, __LINE__);
	res_op->set_op (TRUNC_DIV_EXPR, type, 2);
	res_op->ops[0] = captures[0];
	res_op->ops[1] = captures[1];
	gimple_resimplify2 (lseq, res_op, valueize);
	return true;
      }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
						if (gimple_simplify_275 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_275 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_161 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_161 (res_op, seq, valueize, type, captures, FLOOR_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_ROUND_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_onep (op1))
    {
      {
/* #line 270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_40 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
	  return true;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 292 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_30 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
	  return true;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 297 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_126 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_282 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_52 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_52 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_175 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_175 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
						if (gimple_simplify_275 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_275 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_161 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_161 (res_op, seq, valueize, type, captures, ROUND_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_EXACT_DIV_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_onep (op1))
    {
      {
/* #line 270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_40 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
	  return true;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 292 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_30 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
	  return true;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 297 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_126 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_282 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_52 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 309 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_52 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_175 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 316 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_175 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 333 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_198 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
						if (gimple_simplify_275 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_275 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_161 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 586 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_161 (res_op, seq, valueize, type, captures, EXACT_DIV_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_RDIV_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 364 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 364 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (FLOAT_TYPE_P (type) && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 367, __FILE__, __LINE__);
	    tree tem;
	    tem =  build_one_cst (type);
	    res_op->set_value (tem);
	    return true;
	  }
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 373 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_57 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 373 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_57 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case ABS_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
						    {
						      {
/* #line 381 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[1] ATTRIBUTE_UNUSED = { o20 };
							if (gimple_simplify_201 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case ABS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == o30 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
						    {
						      {
/* #line 381 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[1] ATTRIBUTE_UNUSED = { o30 };
							if (gimple_simplify_201 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 381 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_201 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 381 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_201 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (real_onep (op1))
    {
      {
/* #line 395 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 395 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (!HONOR_SNANS (type))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 396, __FILE__, __LINE__);
	    tree tem;
	    tem = captures[0];
	    res_op->set_value (tem);
	    return true;
	  }
      }
    }
  if (real_minus_onep (op1))
    {
      {
/* #line 401 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 401 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (!HONOR_SNANS (type))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 402, __FILE__, __LINE__);
	    res_op->set_op (NEGATE_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case RDIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 404 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
/* #line 404 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_reciprocal_math)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[0])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 408, __FILE__, __LINE__);
			res_op->set_op (RDIV_EXPR, type, 2);
			res_op->ops[0] = captures[1];
			{
			  tree ops1[2], res;
			  ops1[0] = captures[2];
			  ops1[1] = captures[3];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  switch (TREE_CODE (o31))
		    {
		    case REAL_CST:
		      {
			{
/* #line 404 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
/* #line 404 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (flag_reciprocal_math)
			    {
			      {
/* #line 413 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[3]);
/* #line 415 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (tem)
				    {
				      gimple_seq *lseq = seq;
				      if (lseq
				          && (!single_use (captures[1])))
				        lseq = NULL;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 416, __FILE__, __LINE__);
				      res_op->set_op (RDIV_EXPR, type, 2);
				      {
					tree ops1[2], res;
					ops1[0] = captures[0];
					ops1[1] =  tem;
					gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					gimple_resimplify2 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					res_op->ops[0] = res;
				      }
				      res_op->ops[1] = captures[2];
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
			      }
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case RDIV_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 404 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
/* #line 404 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_reciprocal_math)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 421, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[2];
			  gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			res_op->ops[1] = captures[3];
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 426 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 426, __FILE__, __LINE__);
		    res_op->set_op (RDIV_EXPR, type, 2);
		    {
		      tree ops1[1], res;
		      ops1[0] = captures[0];
		      gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
		      gimple_resimplify1 (lseq, &tem_op, valueize);
		      res = maybe_push_res_to_seq (&tem_op, lseq);
		      if (!res) return false;
		      res_op->ops[0] = res;
		    }
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case RDIV_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[1])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4244, __FILE__, __LINE__);
					res_op->set_op (MULT_EXPR, type, 2);
					res_op->ops[0] = captures[0];
					{
					  tree ops1[1], res;
					  {
					    tree ops2[2], res;
					    ops2[0] = captures[4];
					    ops2[1] = captures[3];
					    gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					    gimple_resimplify2 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    ops1[0] = res;
					  }
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SQRTF, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case RDIV_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[1])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4244, __FILE__, __LINE__);
					res_op->set_op (MULT_EXPR, type, 2);
					res_op->ops[0] = captures[0];
					{
					  tree ops1[1], res;
					  {
					    tree ops2[2], res;
					    ops2[0] = captures[4];
					    ops2[1] = captures[3];
					    gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					    gimple_resimplify2 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    ops1[0] = res;
					  }
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SQRT, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case RDIV_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[1])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4244, __FILE__, __LINE__);
					res_op->set_op (MULT_EXPR, type, 2);
					res_op->ops[0] = captures[0];
					{
					  tree ops1[1], res;
					  {
					    tree ops2[2], res;
					    ops2[0] = captures[4];
					    ops2[1] = captures[3];
					    gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					    gimple_resimplify2 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    ops1[0] = res;
					  }
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_SQRTL, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case RDIV_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[1])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4244, __FILE__, __LINE__);
					res_op->set_op (MULT_EXPR, type, 2);
					res_op->ops[0] = captures[0];
					{
					  tree ops1[1], res;
					  {
					    tree ops2[2], res;
					    ops2[0] = captures[4];
					    ops2[1] = captures[3];
					    gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					    gimple_resimplify2 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    ops1[0] = res;
					  }
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_SQRT, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTF:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case RDIV_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[1])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4244, __FILE__, __LINE__);
					res_op->set_op (MULT_EXPR, type, 2);
					res_op->ops[0] = captures[0];
					{
					  tree ops1[1], res;
					  {
					    tree ops2[2], res;
					    ops2[0] = captures[4];
					    ops2[1] = captures[3];
					    gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					    gimple_resimplify2 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    ops1[0] = res;
					  }
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CBRTF, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_CBRT:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case RDIV_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[1])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4244, __FILE__, __LINE__);
					res_op->set_op (MULT_EXPR, type, 2);
					res_op->ops[0] = captures[0];
					{
					  tree ops1[1], res;
					  {
					    tree ops2[2], res;
					    ops2[0] = captures[4];
					    ops2[1] = captures[3];
					    gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					    gimple_resimplify2 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    ops1[0] = res;
					  }
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CBRT, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTL:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case RDIV_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o40, o41 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (flag_unsafe_math_optimizations)
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[1])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4244, __FILE__, __LINE__);
					res_op->set_op (MULT_EXPR, type, 2);
					res_op->ops[0] = captures[0];
					{
					  tree ops1[1], res;
					  {
					    tree ops2[2], res;
					    ops2[0] = captures[4];
					    ops2[1] = captures[3];
					    gimple_match_op tem_op (res_op->cond.any_else (), RDIV_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					    gimple_resimplify2 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    ops1[0] = res;
					  }
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_CBRTL, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXPF:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXPF, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXPL:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXPL, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_EXP:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_EXP, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2F:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP2F, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP2, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2L:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP2L, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_EXP2:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_EXP2, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10F:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP10F, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP10, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10L:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_EXP10L, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_EXP10:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_EXP10, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10F:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_POW10F, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_POW10, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10L:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o30 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (lseq
			    && (!single_use (captures[1])))
			  lseq = NULL;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4250, __FILE__, __LINE__);
			res_op->set_op (MULT_EXPR, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[1], res;
			  {
			    tree ops2[1], res;
			    ops2[0] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops2[0]), ops2[0]);
			    gimple_resimplify1 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    ops1[0] = res;
			  }
			  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_POW10L, TREE_TYPE (ops1[0]), ops1[0]);
			  gimple_resimplify1 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (optimize)
	    {
/* #line 464 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (flag_reciprocal_math && !real_zerop (captures[1]))
		{
		  {
/* #line 466 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
/* #line 468 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (tem)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 469, __FILE__, __LINE__);
			  res_op->set_op (MULT_EXPR, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] =  tem;
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		  }
		}
	      else
		{
/* #line 470 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (REAL_CST != COMPLEX_CST)
		    {
		      {
/* #line 471 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree inverse = exact_inverse (type, captures[1]);
/* #line 472 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (inverse)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 473, __FILE__, __LINE__);
			      res_op->set_op (MULT_EXPR, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] =  inverse;
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
		      }
		    }
		}
	    }
	}
        break;
      }
    case COMPLEX_CST:
      {
	{
/* #line 463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (optimize)
	    {
/* #line 464 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (flag_reciprocal_math && !real_zerop (captures[1]))
		{
		  {
/* #line 466 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
/* #line 468 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (tem)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 469, __FILE__, __LINE__);
			  res_op->set_op (MULT_EXPR, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] =  tem;
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		  }
		}
	      else
		{
/* #line 470 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (COMPLEX_CST != COMPLEX_CST)
		    {
		      {
/* #line 471 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree inverse = exact_inverse (type, captures[1]);
/* #line 472 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (inverse)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 473, __FILE__, __LINE__);
			      res_op->set_op (MULT_EXPR, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] =  inverse;
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
		      }
		    }
		}
	    }
	}
        break;
      }
    case VECTOR_CST:
      {
	{
/* #line 463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 463 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (optimize)
	    {
/* #line 464 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (flag_reciprocal_math && !real_zerop (captures[1]))
		{
		  {
/* #line 466 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree tem = const_binop (RDIV_EXPR, type, build_one_cst (type), captures[1]);
/* #line 468 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (tem)
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 469, __FILE__, __LINE__);
			  res_op->set_op (MULT_EXPR, type, 2);
			  res_op->ops[0] = captures[0];
			  res_op->ops[1] =  tem;
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		  }
		}
	      else
		{
/* #line 470 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (VECTOR_CST != COMPLEX_CST)
		    {
		      {
/* #line 471 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree inverse = exact_inverse (type, captures[1]);
/* #line 472 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (inverse)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 473, __FILE__, __LINE__);
			      res_op->set_op (MULT_EXPR, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] =  inverse;
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
		      }
		    }
		}
	    }
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_SINF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_COSF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_74 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_TANF))
					  return true;
				      }
				    }
			          break;
			        }
			      case CFN_BUILT_IN_TANF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_73 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SIN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_COS:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_74 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS, CFN_BUILT_IN_TAN))
					  return true;
				      }
				    }
			          break;
			        }
			      case CFN_BUILT_IN_TAN:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_73 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SINL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_COSL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_74 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_TANL))
					  return true;
				      }
				    }
			          break;
			        }
			      case CFN_BUILT_IN_TANL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_73 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_SIN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_COS:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_74 (res_op, seq, valueize, type, captures, CFN_SIN, CFN_COS, CFN_TAN))
					  return true;
				      }
				    }
			          break;
			        }
			      case CFN_TAN:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_73 (res_op, seq, valueize, type, captures, CFN_SIN, CFN_TAN, CFN_COS))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COSF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SINF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_6 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_TANF))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COS:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SIN:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_6 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN, CFN_BUILT_IN_TAN))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_COSL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SINL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_6 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_TANL))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_COS:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_SIN:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_6 (res_op, seq, valueize, type, captures, CFN_COS, CFN_SIN, CFN_TAN))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_TANF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SINF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_261 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_SINF, CFN_BUILT_IN_COSF))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_TAN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SIN:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_261 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_SIN, CFN_BUILT_IN_COS))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_TANL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SINL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_261 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_SINL, CFN_BUILT_IN_COSL))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_TAN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_SIN:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
					if (gimple_simplify_261 (res_op, seq, valueize, type, captures, CFN_TAN, CFN_SIN, CFN_COS))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			      if (gimple_simplify_287 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			      if (gimple_simplify_287 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			      if (gimple_simplify_287 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			      if (gimple_simplify_287 (res_op, seq, valueize, type, captures, CFN_POW))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
		    if (gimple_simplify_53 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF))
		      return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
		    if (gimple_simplify_53 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW))
		      return true;
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
		    if (gimple_simplify_53 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL))
		      return true;
		  }
	          break;
	        }
	      case CFN_POW:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
		    if (gimple_simplify_53 (res_op, seq, valueize, type, captures, CFN_POW))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_LT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case RDIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			if (real_zerop (op1))
			  {
			    {
/* #line 428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			      if (gimple_simplify_187 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 899 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_65 (res_op, seq, valueize, type, captures, LT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MULT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case EXACT_DIV_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					  {
					    {
/* #line 1477 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					      if (gimple_simplify_227 (res_op, seq, valueize, type, captures, LT_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 1484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_305 (res_op, seq, valueize, type, captures, LT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case PLUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, LT_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, LT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_101 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1581 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_3 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_DIFF_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
					if (gimple_simplify_80 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1596 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
					if (gimple_simplify_315 (res_op, seq, valueize, type, captures, LT_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, GT_EXPR))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, GT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, LT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, GT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MIN_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2326 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_107 (res_op, seq, valueize, type, captures, MIN_EXPR, LT_EXPR, BIT_IOR_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2326 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_107 (res_op, seq, valueize, type, captures, MAX_EXPR, LT_EXPR, BIT_AND_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 3148 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_116 (res_op, seq, valueize, type, captures, LT_EXPR, LE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if (integer_zerop (op1))
			  {
			    {
/* #line 3210 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			      if (gimple_simplify_85 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3233 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_215 (res_op, seq, valueize, type, captures, LT_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3254 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_106 (res_op, seq, valueize, type, captures, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      if (gimple_simplify_157 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, LT_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3300 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_307 (res_op, seq, valueize, type, captures, LT_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, PLUS_EXPR, LT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, MINUS_EXPR, LT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3376 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_210 (res_op, seq, valueize, type, captures, LT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, LT_EXPR, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_35 (res_op, seq, valueize, type, captures, LT_EXPR, LE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 3594 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_115 (res_op, seq, valueize, type, captures, LT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_299 (res_op, seq, valueize, type, captures, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
		    if (gimple_simplify_97 (res_op, seq, valueize, type, captures, LT_EXPR))
		      return true;
		  }
		  switch (TREE_CODE (o20))
		    {
		    case ADDR_EXPR:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o40 = gimple_assign_rhs1 (def);
					o40 = do_valueize (valueize, o40);
					switch (TREE_CODE (o40))
					  {
					  case ADDR_EXPR:
					    {
					      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
						if (gimple_simplify_132 (res_op, seq, valueize, type, captures, LT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
				if (gimple_simplify_132 (res_op, seq, valueize, type, captures, LT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  if (uniform_integer_cst_p (op1))
		    {
		      {
/* #line 4013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			if (gimple_simplify_203 (res_op, seq, valueize, type, captures, LT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, LT_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, LT_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, LT_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_SQRT, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_SQRT, LT_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    if (gimple *def_stmt = get_def (valueize, op1))
	      {
		if (gassign *def = dyn_cast <gassign *> (def_stmt))
		  switch (gimple_assign_rhs_code (def))
		    {
		    CASE_CONVERT:
		      {
			tree o30 = gimple_assign_rhs1 (def);
			o30 = do_valueize (valueize, o30);
			switch (TREE_CODE (o30))
			  {
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
				if (gimple_simplify_169 (res_op, seq, valueize, type, captures, LT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	      }
	    break;
	  case ADDR_EXPR:
	    {
	      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		if (gimple_simplify_169 (res_op, seq, valueize, type, captures, LT_EXPR))
		  return true;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 4013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
	if (gimple_simplify_199 (res_op, seq, valueize, type, captures, LT_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			      if (gimple_simplify_28 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR))
			        return true;
			    }
			  }
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4937 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_207 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, LT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      switch (TREE_CODE (o31))
		        {
			case INTEGER_CST:
			  {
			    {
/* #line 4131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
			      if (gimple_simplify_28 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR))
			        return true;
			    }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 4146 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
			if (gimple_simplify_10 (res_op, seq, valueize, type, captures, GT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case REALPART_EXPR:
	        {
		  tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o30) == SSA_NAME
		       || is_gimple_min_invariant (o30)))
		    {
		      o30 = do_valueize (valueize, o30);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_SUB_OVERFLOW:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 4158 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
					    if (gimple_simplify_250 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case REALPART_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      switch (TREE_CODE (o20))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o20))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_ADD_OVERFLOW:
				    {
				      tree o30 = gimple_call_arg (def, 0);
				      o30 = do_valueize (valueize, o30);
				      tree o31 = gimple_call_arg (def, 1);
				      o31 = do_valueize (valueize, o31);
				      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					{
					  {
/* #line 4166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
					    if (gimple_simplify_143 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
					{
					  {
/* #line 4166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o31, o30 };
					    if (gimple_simplify_143 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_all_onesp (o20))
		    {
		      {
/* #line 4176 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, op1 };
			if (gimple_simplify_46 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_266 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4937 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_207 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, LT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_LE_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case RDIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			if (real_zerop (op1))
			  {
			    {
/* #line 428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			      if (gimple_simplify_187 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case TRUNC_MOD_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 904 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_237 (res_op, seq, valueize, type, captures, LE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MULT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_minus_onep (o21))
		    {
		      switch (TREE_CODE (op1))
		        {
			case INTEGER_CST:
			  {
			    {
/* #line 1465 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			      if (gimple_simplify_221 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR))
			        return true;
			    }
			    break;
			  }
		        default:;
		        }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case PLUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, LE_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, LE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case EXACT_DIV_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					  {
					    {
/* #line 1477 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					      if (gimple_simplify_227 (res_op, seq, valueize, type, captures, LE_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 1484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_305 (res_op, seq, valueize, type, captures, LE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_101 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1581 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_3 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_DIFF_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
					if (gimple_simplify_80 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1596 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
					if (gimple_simplify_315 (res_op, seq, valueize, type, captures, LE_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, GE_EXPR))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, GE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, LE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, GE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MIN_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2326 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_107 (res_op, seq, valueize, type, captures, MIN_EXPR, LE_EXPR, BIT_IOR_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2326 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_107 (res_op, seq, valueize, type, captures, MAX_EXPR, LE_EXPR, BIT_AND_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 3138 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_229 (res_op, seq, valueize, type, captures, LE_EXPR, LT_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if (integer_zerop (op1))
			  {
			    {
/* #line 3210 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			      if (gimple_simplify_85 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3225 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_70 (res_op, seq, valueize, type, captures, LE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3254 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_106 (res_op, seq, valueize, type, captures, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      if (gimple_simplify_157 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, LE_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3300 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_307 (res_op, seq, valueize, type, captures, LE_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, PLUS_EXPR, LE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, MINUS_EXPR, LE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3376 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_210 (res_op, seq, valueize, type, captures, LE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, LE_EXPR, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_35 (res_op, seq, valueize, type, captures, LE_EXPR, LE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 3594 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_115 (res_op, seq, valueize, type, captures, LE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 3655 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_67 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_299 (res_op, seq, valueize, type, captures, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
		    if (gimple_simplify_97 (res_op, seq, valueize, type, captures, LE_EXPR))
		      return true;
		  }
		  switch (TREE_CODE (o20))
		    {
		    case ADDR_EXPR:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o40 = gimple_assign_rhs1 (def);
					o40 = do_valueize (valueize, o40);
					switch (TREE_CODE (o40))
					  {
					  case ADDR_EXPR:
					    {
					      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
						if (gimple_simplify_132 (res_op, seq, valueize, type, captures, LE_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
				if (gimple_simplify_132 (res_op, seq, valueize, type, captures, LE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  if (uniform_integer_cst_p (op1))
		    {
		      {
/* #line 4013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			if (gimple_simplify_203 (res_op, seq, valueize, type, captures, LE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, LE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, LE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, LE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_SQRT, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_SQRT, LE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    if (gimple *def_stmt = get_def (valueize, op1))
	      {
		if (gassign *def = dyn_cast <gassign *> (def_stmt))
		  switch (gimple_assign_rhs_code (def))
		    {
		    CASE_CONVERT:
		      {
			tree o30 = gimple_assign_rhs1 (def);
			o30 = do_valueize (valueize, o30);
			switch (TREE_CODE (o30))
			  {
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
				if (gimple_simplify_169 (res_op, seq, valueize, type, captures, LE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	      }
	    break;
	  case ADDR_EXPR:
	    {
	      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		if (gimple_simplify_169 (res_op, seq, valueize, type, captures, LE_EXPR))
		  return true;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 4013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
	if (gimple_simplify_199 (res_op, seq, valueize, type, captures, LE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			      if (gimple_simplify_28 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      switch (TREE_CODE (o31))
		        {
			case INTEGER_CST:
			  {
			    {
/* #line 4131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
			      if (gimple_simplify_28 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR))
			        return true;
			    }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 4146 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_10 (res_op, seq, valueize, type, captures, LE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case REALPART_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      switch (TREE_CODE (o20))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o20))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_SUB_OVERFLOW:
				    {
				      tree o30 = gimple_call_arg (def, 0);
				      o30 = do_valueize (valueize, o30);
				      tree o31 = gimple_call_arg (def, 1);
				      o31 = do_valueize (valueize, o31);
				      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					{
					  {
/* #line 4158 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
					    if (gimple_simplify_291 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case REALPART_EXPR:
	        {
		  tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o30) == SSA_NAME
		       || is_gimple_min_invariant (o30)))
		    {
		      o30 = do_valueize (valueize, o30);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_ADD_OVERFLOW:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 4166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
					    if (gimple_simplify_292 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
					{
					  {
/* #line 4166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o40 };
					    if (gimple_simplify_292 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (integer_all_onesp (o30))
		    {
		      {
/* #line 4176 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
			if (gimple_simplify_303 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_266 (res_op, seq, valueize, type, captures, LE_EXPR, GE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4937 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_207 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, LE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4937 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_207 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, LE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_POPCOUNT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTLL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTIMAX:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_GT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case RDIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			if (real_zerop (op1))
			  {
			    {
/* #line 428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			      if (gimple_simplify_187 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case TRUNC_MOD_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 904 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_237 (res_op, seq, valueize, type, captures, GT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MULT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_minus_onep (o21))
		    {
		      switch (TREE_CODE (op1))
		        {
			case INTEGER_CST:
			  {
			    {
/* #line 1465 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			      if (gimple_simplify_221 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR))
			        return true;
			    }
			    break;
			  }
		        default:;
		        }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case PLUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, GT_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, GT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case EXACT_DIV_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					  {
					    {
/* #line 1477 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					      if (gimple_simplify_227 (res_op, seq, valueize, type, captures, GT_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 1484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_305 (res_op, seq, valueize, type, captures, GT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_101 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1581 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_3 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_DIFF_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
					if (gimple_simplify_80 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1596 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
					if (gimple_simplify_315 (res_op, seq, valueize, type, captures, GT_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, LT_EXPR))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, LT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, GT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, LT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2326 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_107 (res_op, seq, valueize, type, captures, MAX_EXPR, GT_EXPR, BIT_IOR_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MIN_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2326 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_107 (res_op, seq, valueize, type, captures, MIN_EXPR, GT_EXPR, BIT_AND_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 3138 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_229 (res_op, seq, valueize, type, captures, GT_EXPR, GE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if (integer_zerop (op1))
			  {
			    {
/* #line 3210 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			      if (gimple_simplify_85 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3233 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_215 (res_op, seq, valueize, type, captures, GT_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3254 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_106 (res_op, seq, valueize, type, captures, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      if (gimple_simplify_157 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, GT_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3300 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_307 (res_op, seq, valueize, type, captures, GT_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, PLUS_EXPR, GT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, MINUS_EXPR, GT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3376 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_210 (res_op, seq, valueize, type, captures, GT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, GT_EXPR, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_35 (res_op, seq, valueize, type, captures, GT_EXPR, GE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 3594 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_115 (res_op, seq, valueize, type, captures, GT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 3655 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_67 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_299 (res_op, seq, valueize, type, captures, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
		    if (gimple_simplify_97 (res_op, seq, valueize, type, captures, GT_EXPR))
		      return true;
		  }
		  switch (TREE_CODE (o20))
		    {
		    case ADDR_EXPR:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o40 = gimple_assign_rhs1 (def);
					o40 = do_valueize (valueize, o40);
					switch (TREE_CODE (o40))
					  {
					  case ADDR_EXPR:
					    {
					      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
						if (gimple_simplify_132 (res_op, seq, valueize, type, captures, GT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
				if (gimple_simplify_132 (res_op, seq, valueize, type, captures, GT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  if (uniform_integer_cst_p (op1))
		    {
		      {
/* #line 4013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			if (gimple_simplify_203 (res_op, seq, valueize, type, captures, GT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, GT_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, GT_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, GT_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_SQRT, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_SQRT, GT_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    if (gimple *def_stmt = get_def (valueize, op1))
	      {
		if (gassign *def = dyn_cast <gassign *> (def_stmt))
		  switch (gimple_assign_rhs_code (def))
		    {
		    CASE_CONVERT:
		      {
			tree o30 = gimple_assign_rhs1 (def);
			o30 = do_valueize (valueize, o30);
			switch (TREE_CODE (o30))
			  {
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
				if (gimple_simplify_169 (res_op, seq, valueize, type, captures, GT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	      }
	    break;
	  case ADDR_EXPR:
	    {
	      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		if (gimple_simplify_169 (res_op, seq, valueize, type, captures, GT_EXPR))
		  return true;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 4013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
	if (gimple_simplify_199 (res_op, seq, valueize, type, captures, GT_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			      if (gimple_simplify_28 (res_op, seq, valueize, type, captures, GT_EXPR, LE_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      switch (TREE_CODE (o31))
		        {
			case INTEGER_CST:
			  {
			    {
/* #line 4131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
			      if (gimple_simplify_28 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR))
			        return true;
			    }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 4146 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_10 (res_op, seq, valueize, type, captures, GT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case REALPART_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      switch (TREE_CODE (o20))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o20))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_SUB_OVERFLOW:
				    {
				      tree o30 = gimple_call_arg (def, 0);
				      o30 = do_valueize (valueize, o30);
				      tree o31 = gimple_call_arg (def, 1);
				      o31 = do_valueize (valueize, o31);
				      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					{
					  {
/* #line 4158 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
					    if (gimple_simplify_291 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case REALPART_EXPR:
	        {
		  tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o30) == SSA_NAME
		       || is_gimple_min_invariant (o30)))
		    {
		      o30 = do_valueize (valueize, o30);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_ADD_OVERFLOW:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 4166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
					    if (gimple_simplify_292 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
					{
					  {
/* #line 4166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o40 };
					    if (gimple_simplify_292 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (integer_all_onesp (o30))
		    {
		      {
/* #line 4176 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
			if (gimple_simplify_303 (res_op, seq, valueize, type, captures, LT_EXPR, NE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_266 (res_op, seq, valueize, type, captures, GT_EXPR, LT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4937 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_207 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, GT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4937 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_207 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, GT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_POPCOUNT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTLL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTIMAX:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, GT_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_GE_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case RDIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			if (real_zerop (op1))
			  {
			    {
/* #line 428 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			      if (gimple_simplify_187 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 899 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_65 (res_op, seq, valueize, type, captures, GE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MULT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1452 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_302 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case EXACT_DIV_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					  {
					    {
/* #line 1477 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					      if (gimple_simplify_227 (res_op, seq, valueize, type, captures, GE_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 1484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_305 (res_op, seq, valueize, type, captures, GE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case PLUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1538 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_99 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, GE_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, GE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1554 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_101 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1581 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_3 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_DIFF_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
					if (gimple_simplify_80 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1596 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
					if (gimple_simplify_315 (res_op, seq, valueize, type, captures, GE_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, LE_EXPR))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1608 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
			if (gimple_simplify_165 (res_op, seq, valueize, type, captures, LE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, GE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, LE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2326 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_107 (res_op, seq, valueize, type, captures, MAX_EXPR, GE_EXPR, BIT_IOR_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MIN_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2326 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_107 (res_op, seq, valueize, type, captures, MIN_EXPR, GE_EXPR, BIT_AND_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 3148 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_116 (res_op, seq, valueize, type, captures, GE_EXPR, GT_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if (integer_zerop (op1))
			  {
			    {
/* #line 3210 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			      if (gimple_simplify_85 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3225 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_70 (res_op, seq, valueize, type, captures, GE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3254 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_106 (res_op, seq, valueize, type, captures, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      if (gimple_simplify_157 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, GE_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3300 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_307 (res_op, seq, valueize, type, captures, GE_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, PLUS_EXPR, GE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, MINUS_EXPR, GE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3376 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_210 (res_op, seq, valueize, type, captures, GE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, GE_EXPR, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_35 (res_op, seq, valueize, type, captures, GE_EXPR, GE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 3594 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_115 (res_op, seq, valueize, type, captures, GE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_299 (res_op, seq, valueize, type, captures, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
		    if (gimple_simplify_97 (res_op, seq, valueize, type, captures, GE_EXPR))
		      return true;
		  }
		  switch (TREE_CODE (o20))
		    {
		    case ADDR_EXPR:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o40 = gimple_assign_rhs1 (def);
					o40 = do_valueize (valueize, o40);
					switch (TREE_CODE (o40))
					  {
					  case ADDR_EXPR:
					    {
					      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
						if (gimple_simplify_132 (res_op, seq, valueize, type, captures, GE_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
				if (gimple_simplify_132 (res_op, seq, valueize, type, captures, GE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  if (uniform_integer_cst_p (op1))
		    {
		      {
/* #line 4013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
			if (gimple_simplify_203 (res_op, seq, valueize, type, captures, GE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, GE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, GE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, GE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_SQRT, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_SQRT, GE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    if (gimple *def_stmt = get_def (valueize, op1))
	      {
		if (gassign *def = dyn_cast <gassign *> (def_stmt))
		  switch (gimple_assign_rhs_code (def))
		    {
		    CASE_CONVERT:
		      {
			tree o30 = gimple_assign_rhs1 (def);
			o30 = do_valueize (valueize, o30);
			switch (TREE_CODE (o30))
			  {
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
				if (gimple_simplify_169 (res_op, seq, valueize, type, captures, GE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	      }
	    break;
	  case ADDR_EXPR:
	    {
	      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		if (gimple_simplify_169 (res_op, seq, valueize, type, captures, GE_EXPR))
		  return true;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  if (uniform_integer_cst_p (op1))
    {
      {
/* #line 4013 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
	if (gimple_simplify_199 (res_op, seq, valueize, type, captures, GE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 4131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			      if (gimple_simplify_28 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR))
			        return true;
			    }
			  }
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4937 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_207 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, GE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      switch (TREE_CODE (o31))
		        {
			case INTEGER_CST:
			  {
			    {
/* #line 4131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
			      if (gimple_simplify_28 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR))
			        return true;
			    }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 4146 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, op0, o31 };
			if (gimple_simplify_10 (res_op, seq, valueize, type, captures, LE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case REALPART_EXPR:
	        {
		  tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o30) == SSA_NAME
		       || is_gimple_min_invariant (o30)))
		    {
		      o30 = do_valueize (valueize, o30);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_SUB_OVERFLOW:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 4158 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o41 };
					    if (gimple_simplify_250 (res_op, seq, valueize, type, captures, LE_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case REALPART_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      switch (TREE_CODE (o20))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o20))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_ADD_OVERFLOW:
				    {
				      tree o30 = gimple_call_arg (def, 0);
				      o30 = do_valueize (valueize, o30);
				      tree o31 = gimple_call_arg (def, 1);
				      o31 = do_valueize (valueize, o31);
				      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					{
					  {
/* #line 4166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o31 };
					    if (gimple_simplify_143 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
					{
					  {
/* #line 4166 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o31, o30 };
					    if (gimple_simplify_143 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_all_onesp (o20))
		    {
		      {
/* #line 4176 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, op1 };
			if (gimple_simplify_46 (res_op, seq, valueize, type, captures, GE_EXPR, EQ_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_266 (res_op, seq, valueize, type, captures, GE_EXPR, LE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4937 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_207 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, GE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CEIL_MOD_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_zerop (op0))
    {
      {
/* #line 480 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_295 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR))
	  return true;
      }
    }
  if (integer_onep (op1))
    {
      {
/* #line 485 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_68 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR))
	  return true;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_2 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 495 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_279 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CEIL_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_48 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_124 (res_op, seq, valueize, type, captures, CEIL_MOD_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_FLOOR_MOD_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_zerop (op0))
    {
      {
/* #line 480 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_295 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR))
	  return true;
      }
    }
  if (integer_onep (op1))
    {
      {
/* #line 485 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_68 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR))
	  return true;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_2 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 495 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_279 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case FLOOR_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_48 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_124 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
		    tree o30_pops[1];
		    if (gimple_power_of_two_cand (o30, o30_pops, valueize))
		      {
			tree o40 = o30_pops[0];
			{
/* #line 561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o40 };
			  if (gimple_simplify_322 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR))
			    return true;
			}
}
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op1_pops[1];
  if (gimple_power_of_two_cand (op1, op1_pops, valueize))
    {
      tree o30 = op1_pops[0];
      {
/* #line 561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o30 };
	if (gimple_simplify_17 (res_op, seq, valueize, type, captures, FLOOR_MOD_EXPR))
	  return true;
      }
}
}
  return false;
}

static bool
gimple_simplify_ROUND_MOD_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_zerop (op0))
    {
      {
/* #line 480 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_295 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR))
	  return true;
      }
    }
  if (integer_onep (op1))
    {
      {
/* #line 485 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_68 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR))
	  return true;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_2 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 495 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_279 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case ROUND_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_48 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_124 (res_op, seq, valueize, type, captures, ROUND_MOD_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_TRUNC_MOD_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_zerop (op0))
    {
      {
/* #line 480 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_295 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR))
	  return true;
      }
    }
  if (integer_onep (op1))
    {
      {
/* #line 485 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_68 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR))
	  return true;
      }
    }
  if (integer_minus_onep (op1))
    {
      {
/* #line 489 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_2 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 495 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_279 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case TRUNC_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_48 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_124 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 532 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
				    if (gimple_simplify_51 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		{
		  tree o30_pops[1];
		  if (gimple_power_of_two_cand (o30, o30_pops, valueize))
		    {
		      tree o40 = o30_pops[0];
		      {
/* #line 561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o40 };
			if (gimple_simplify_322 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR))
			  return true;
		      }
}
		}
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 532 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    if (gimple_simplify_51 (res_op, seq, valueize, type, captures))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case INTEGER_CST:
      {
	{
/* #line 521 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 521 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (TYPE_SIGN (type) == SIGNED && !TREE_OVERFLOW (captures[1]) && wi::neg_p (wi::to_wide (captures[1])) && !TYPE_OVERFLOW_TRAPS (type) && !sign_bit_p (captures[1], captures[1]))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 527, __FILE__, __LINE__);
	      res_op->set_op (TRUNC_MOD_EXPR, type, 2);
	      res_op->ops[0] = captures[0];
	      {
		tree ops1[1], res;
		ops1[0] = captures[1];
		gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
		gimple_resimplify1 (lseq, &tem_op, valueize);
		res = maybe_push_res_to_seq (&tem_op, lseq);
		if (!res) return false;
		res_op->ops[1] = res;
	      }
	      gimple_resimplify2 (lseq, res_op, valueize);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
{
  tree op1_pops[1];
  if (gimple_power_of_two_cand (op1, op1_pops, valueize))
    {
      tree o30 = op1_pops[0];
      {
/* #line 561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, op1, o30 };
	if (gimple_simplify_17 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR))
	  return true;
      }
}
}
  return false;
}

static bool
gimple_simplify_EQ_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CEIL_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_pow2p (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 514 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_49 (res_op, seq, valueize, type, captures, EQ_EXPR, CEIL_MOD_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case FLOOR_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_pow2p (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 514 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_49 (res_op, seq, valueize, type, captures, EQ_EXPR, FLOOR_MOD_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case ROUND_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_pow2p (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 514 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_49 (res_op, seq, valueize, type, captures, EQ_EXPR, ROUND_MOD_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case TRUNC_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_pow2p (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 514 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_49 (res_op, seq, valueize, type, captures, EQ_EXPR, TRUNC_MOD_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MULT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1429 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_138 (res_op, seq, valueize, type, captures, EQ_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1429 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_138 (res_op, seq, valueize, type, captures, EQ_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1429 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_138 (res_op, seq, valueize, type, captures, EQ_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1429 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_138 (res_op, seq, valueize, type, captures, EQ_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case MULT_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					  {
					    {
/* #line 1439 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					      if (gimple_simplify_32 (res_op, seq, valueize, type, captures, EQ_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case EXACT_DIV_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					  {
					    {
/* #line 1477 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					      if (gimple_simplify_227 (res_op, seq, valueize, type, captures, EQ_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 1484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_305 (res_op, seq, valueize, type, captures, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case PLUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (EQ_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (EQ_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (EQ_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (EQ_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1564, __FILE__, __LINE__);
					    res_op->set_op (EQ_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1588 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1588 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1591, __FILE__, __LINE__);
					    res_op->set_op (EQ_EXPR, type, 2);
					    res_op->ops[0] = captures[2];
					    res_op->ops[1] = captures[1];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_DIFF_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
					if (gimple_simplify_80 (res_op, seq, valueize, type, captures, EQ_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1596 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
					if (gimple_simplify_315 (res_op, seq, valueize, type, captures, EQ_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case MINUS_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  switch (TREE_CODE (o50))
						    {
						    case INTEGER_CST:
						      {
							switch (TREE_CODE (o51))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o51))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    CASE_CONVERT:
								      {
									tree o70 = gimple_assign_rhs1 (def);
									o70 = do_valueize (valueize, o70);
									if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
									  {
									    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									      tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
									      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
									        return true;
									    }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		{
		  tree op1_pops[1];
		  if (gimple_nop_convert (op1, op1_pops, valueize))
		    {
		      tree o40 = op1_pops[0];
		      switch (TREE_CODE (o40))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o40))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case PLUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
							{
							  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o50, o20 };
							    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      switch (TREE_CODE (o50))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o50))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
							{
							  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o51, o20 };
							    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o50, o20 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o51, o20 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  case POINTER_PLUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      switch (TREE_CODE (o50))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o50))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
							{
							  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o20, o51 };
							    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, EQ_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o20, o51 };
					    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
}
		}
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o30))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (o31))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o31))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o50 = gimple_assign_rhs1 (def);
							o50 = do_valueize (valueize, o50);
							switch (TREE_CODE (op1))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, op1))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    CASE_CONVERT:
								      {
									tree o70 = gimple_assign_rhs1 (def);
									o70 = do_valueize (valueize, o70);
									if ((o70 == o50 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o50, 0) && types_match (o70, o50)))
									  {
									    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									      tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
									      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
									        return true;
									    }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
							if ((op1 == o50 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o50, 0) && types_match (op1, o50)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { o31, o30 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o31, o30 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case MINUS_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  switch (TREE_CODE (o50))
						    {
						    case INTEGER_CST:
						      {
							if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case MINUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (o41))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o41))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_logical_inverted_value (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	{
	  if (gimple_truth_valued_p (op1, valueize))
	    {
	      {
/* #line 1359 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		if (gimple_simplify_26 (res_op, seq, valueize, type, captures, EQ_EXPR))
		  return true;
	      }
	    }
        }
}
}
{
  tree op0_pops[1];
  if (gimple_nop_convert (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case SSA_NAME:
	  if (gimple *def_stmt = get_def (valueize, o20))
	    {
	      if (gassign *def = dyn_cast <gassign *> (def_stmt))
	        switch (gimple_assign_rhs_code (def))
		  {
		  case PLUS_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      tree o31 = gimple_assign_rhs2 (def);
		      o31 = do_valueize (valueize, o31);
		      if (tree_swap_operands_p (o30, o31))
		        std::swap (o30, o31);
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o50 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o50, 0) && types_match (o70, o50)))
							{
							  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o50 };
							    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
							{
							  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o40 };
							    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o40 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((op1 == o50 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o50, 0) && types_match (op1, o50)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o50 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o60 = gimple_assign_rhs1 (def);
				      o60 = do_valueize (valueize, o60);
				      if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o30 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
			{
			  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
			    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
			      return true;
			  }
		        }
		      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
			{
			  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o30 };
			    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
			      return true;
			  }
		        }
		      break;
		    }
		  case POINTER_PLUS_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      tree o31 = gimple_assign_rhs2 (def);
		      o31 = do_valueize (valueize, o31);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
							{
							  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, o31 };
							    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, EQ_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, o31 };
					    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o60 = gimple_assign_rhs1 (def);
				      o60 = do_valueize (valueize, o60);
				      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
					{
					  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
					    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
			{
			  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
			    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, EQ_EXPR))
			      return true;
			  }
		        }
		      break;
		    }
		  default:;
		  }
	    }
	  break;
        default:;
        }
}
}
if (gimple_truth_valued_p (op0, valueize))
  {
    {
      tree op1_pops[1];
      if (gimple_logical_inverted_value (op1, op1_pops, valueize))
        {
	  tree o30 = op1_pops[0];
	  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	    {
	      {
/* #line 1359 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		if (gimple_simplify_26 (res_op, seq, valueize, type, captures, EQ_EXPR))
		  return true;
	      }
	    }
}
    }
  }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, EQ_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op1_pops[1];
  if (gimple_nop_convert (op1, op1_pops, valueize))
    {
      tree o30 = op1_pops[0];
      switch (TREE_CODE (o30))
        {
	case SSA_NAME:
	  if (gimple *def_stmt = get_def (valueize, o30))
	    {
	      if (gassign *def = dyn_cast <gassign *> (def_stmt))
	        switch (gimple_assign_rhs_code (def))
		  {
		  case PLUS_EXPR:
		    {
		      tree o40 = gimple_assign_rhs1 (def);
		      o40 = do_valueize (valueize, o40);
		      tree o41 = gimple_assign_rhs2 (def);
		      o41 = do_valueize (valueize, o41);
		      if (tree_swap_operands_p (o40, o41))
		        std::swap (o40, o41);
		      switch (TREE_CODE (o41))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o41))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o60 = gimple_assign_rhs1 (def);
				      o60 = do_valueize (valueize, o60);
				      if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o40, op0 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      switch (TREE_CODE (o40))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o40))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o41, op0 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
			{
			  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o40, op0 };
			    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
			      return true;
			  }
		        }
		      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
			{
			  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o41, op0 };
			    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, EQ_EXPR))
			      return true;
			  }
		        }
		      break;
		    }
		  case POINTER_PLUS_EXPR:
		    {
		      tree o40 = gimple_assign_rhs1 (def);
		      o40 = do_valueize (valueize, o40);
		      tree o41 = gimple_assign_rhs2 (def);
		      o41 = do_valueize (valueize, o41);
		      switch (TREE_CODE (o40))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o40))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, op0, o41 };
					    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
			{
			  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, op0, o41 };
			    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, EQ_EXPR))
			      return true;
			  }
		        }
		      break;
		    }
		  default:;
		  }
	    }
	  break;
        default:;
        }
}
}
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, EQ_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o20))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (o21))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, o21))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o40 = gimple_assign_rhs1 (def);
					o40 = do_valueize (valueize, o40);
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			  {
			    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 1650 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_108 (res_op, seq, valueize, type, captures, EQ_EXPR, LT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (o41))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o41))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  switch (TREE_CODE (o30))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (o31))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, o31))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			  {
			    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, EQ_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MIN_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_133 (res_op, seq, valueize, type, captures, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2314 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_8 (res_op, seq, valueize, type, captures, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_with_possible_nonzero_bits2 (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      {
	tree op1_pops[1];
	if (gimple_with_certain_nonzero_bits2 (op1, op1_pops, valueize))
	  {
	    tree o40 = op1_pops[0];
	    {
/* #line 1687 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
	      if (gimple_simplify_144 (res_op, seq, valueize, type, captures, EQ_EXPR))
	        return true;
	    }
}
      }
}
}
{
  tree op0_pops[1];
  if (gimple_with_certain_nonzero_bits2 (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      {
	tree op1_pops[1];
	if (gimple_with_possible_nonzero_bits2 (op1, op1_pops, valueize))
	  {
	    tree o40 = op1_pops[0];
	    {
/* #line 1687 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
	      if (gimple_simplify_144 (res_op, seq, valueize, type, captures, EQ_EXPR))
	        return true;
	    }
}
      }
}
}
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MIN_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MIN_EXPR, EQ_EXPR, LE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MAX_EXPR, EQ_EXPR, GE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case LSHIFT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (integer_onep (o30))
				    {
				      if (integer_onep (o21))
					{
					  if (integer_zerop (op1))
					    {
					      {
/* #line 2423 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[1] ATTRIBUTE_UNUSED = { o31 };
						if (gimple_simplify_59 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR))
						  return true;
					      }
					    }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LSHIFT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2431 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_112 (res_op, seq, valueize, type, captures, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 3198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_153 (res_op, seq, valueize, type, captures, EQ_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 3198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_96 (res_op, seq, valueize, type, captures, EQ_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if (integer_zerop (op1))
			  {
			    {
/* #line 3210 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			      if (gimple_simplify_85 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3225 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_70 (res_op, seq, valueize, type, captures, EQ_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3254 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_106 (res_op, seq, valueize, type, captures, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      if (gimple_simplify_157 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, EQ_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3300 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_307 (res_op, seq, valueize, type, captures, EQ_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, PLUS_EXPR, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, MINUS_EXPR, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3376 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_210 (res_op, seq, valueize, type, captures, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_35 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 3578 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			  if (gimple_simplify_204 (res_op, seq, valueize, type, captures, EQ_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (zerop (op1))
		    {
		      {
/* #line 3691 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			if (gimple_simplify_178 (res_op, seq, valueize, type, captures, EQ_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_299 (res_op, seq, valueize, type, captures, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
		    if (gimple_simplify_97 (res_op, seq, valueize, type, captures, EQ_EXPR))
		      return true;
		  }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 3777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
						if (gimple_simplify_60 (res_op, seq, valueize, type, captures, EQ_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 3777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_60 (res_op, seq, valueize, type, captures, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 3784 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_232 (res_op, seq, valueize, type, captures, EQ_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 3790 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_233 (res_op, seq, valueize, type, captures, EQ_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 3790 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_233 (res_op, seq, valueize, type, captures, EQ_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, EQ_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, EQ_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, EQ_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_SQRT, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_SQRT, EQ_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    {
	      {
/* #line 3761 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		if (gimple_simplify_283 (res_op, seq, valueize, type, captures, EQ_EXPR))
		  return true;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_XOR_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 3790 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
			if (gimple_simplify_233 (res_op, seq, valueize, type, captures, EQ_EXPR))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 3790 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_233 (res_op, seq, valueize, type, captures, EQ_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 3795 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
						if (gimple_simplify_1 (res_op, seq, valueize, type, captures, EQ_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case ADDR_EXPR:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o40 = gimple_assign_rhs1 (def);
					o40 = do_valueize (valueize, o40);
					switch (TREE_CODE (o40))
					  {
					  case ADDR_EXPR:
					    {
					      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
						if (gimple_simplify_132 (res_op, seq, valueize, type, captures, EQ_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
				if (gimple_simplify_132 (res_op, seq, valueize, type, captures, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		      if (integer_zerop (op1))
			{
			  {
/* #line 3800 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			    if (gimple_simplify_98 (res_op, seq, valueize, type, captures, EQ_EXPR))
			      return true;
			  }
		        }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 3795 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_1 (res_op, seq, valueize, type, captures, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_pow2p (o21))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 3809 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			    if (gimple_simplify_192 (res_op, seq, valueize, type, captures, EQ_EXPR, NE_EXPR))
			      return true;
			  }
		        }
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  if (integer_pow2p (o21))
				    {
				      if (integer_zerop (op1))
					{
					  {
/* #line 3835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 };
					    if (gimple_simplify_149 (res_op, seq, valueize, type, captures, EQ_EXPR, GE_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if (integer_pow2p (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 3835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o20, o21 };
			    if (gimple_simplify_219 (res_op, seq, valueize, type, captures, EQ_EXPR, GE_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    if (gimple *def_stmt = get_def (valueize, op1))
	      {
		if (gassign *def = dyn_cast <gassign *> (def_stmt))
		  switch (gimple_assign_rhs_code (def))
		    {
		    CASE_CONVERT:
		      {
			tree o30 = gimple_assign_rhs1 (def);
			o30 = do_valueize (valueize, o30);
			switch (TREE_CODE (o30))
			  {
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
				if (gimple_simplify_169 (res_op, seq, valueize, type, captures, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	      }
	    break;
	  case ADDR_EXPR:
	    {
	      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		if (gimple_simplify_169 (res_op, seq, valueize, type, captures, EQ_EXPR))
		  return true;
	      }
	      break;
	    }
          default:;
          }
      if (integer_zerop (op1))
	{
	  {
/* #line 3800 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	    if (gimple_simplify_98 (res_op, seq, valueize, type, captures, EQ_EXPR))
	      return true;
	  }
        }
        break;
      }
    default:;
    }
  {
/* #line 3985 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_308 (res_op, seq, valueize, type, captures, EQ_EXPR))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 3998 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_226 (res_op, seq, valueize, type, captures, EQ_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (integer_onep (op1))
    {
      {
/* #line 4112 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4112 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE && types_match (type, TREE_TYPE (captures[0])))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4114, __FILE__, __LINE__);
	    tree tem;
	    tem = captures[0];
	    res_op->set_value (tem);
	    return true;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4921 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_242 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4921 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_242 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, EQ_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_POPCOUNT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTLL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTIMAX:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, EQ_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_NE_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CEIL_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_pow2p (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 514 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_49 (res_op, seq, valueize, type, captures, NE_EXPR, CEIL_MOD_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case FLOOR_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_pow2p (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 514 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_49 (res_op, seq, valueize, type, captures, NE_EXPR, FLOOR_MOD_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case ROUND_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_pow2p (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 514 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_49 (res_op, seq, valueize, type, captures, NE_EXPR, ROUND_MOD_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case TRUNC_MOD_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_pow2p (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 514 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_49 (res_op, seq, valueize, type, captures, NE_EXPR, TRUNC_MOD_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MULT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1429 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					if (gimple_simplify_138 (res_op, seq, valueize, type, captures, NE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1429 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
					if (gimple_simplify_138 (res_op, seq, valueize, type, captures, NE_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1429 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
					if (gimple_simplify_138 (res_op, seq, valueize, type, captures, NE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1429 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
					if (gimple_simplify_138 (res_op, seq, valueize, type, captures, NE_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case MULT_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					  {
					    {
/* #line 1439 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					      if (gimple_simplify_32 (res_op, seq, valueize, type, captures, NE_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case EXACT_DIV_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					  {
					    {
/* #line 1477 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					      if (gimple_simplify_227 (res_op, seq, valueize, type, captures, NE_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 1484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_305 (res_op, seq, valueize, type, captures, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case PLUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (NE_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (NE_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o50 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (NE_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, o51 };
/* #line 1545 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1548, __FILE__, __LINE__);
					    res_op->set_op (NE_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
/* #line 1561 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1564, __FILE__, __LINE__);
					    res_op->set_op (NE_EXPR, type, 2);
					    res_op->ops[0] = captures[0];
					    res_op->ops[1] = captures[2];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1588 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o51 };
/* #line 1588 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1591, __FILE__, __LINE__);
					    res_op->set_op (NE_EXPR, type, 2);
					    res_op->ops[0] = captures[2];
					    res_op->ops[1] = captures[1];
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_DIFF_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1569 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o50 };
					if (gimple_simplify_80 (res_op, seq, valueize, type, captures, NE_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1596 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o51 };
					if (gimple_simplify_315 (res_op, seq, valueize, type, captures, NE_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case MINUS_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  switch (TREE_CODE (o50))
						    {
						    case INTEGER_CST:
						      {
							switch (TREE_CODE (o51))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o51))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    CASE_CONVERT:
								      {
									tree o70 = gimple_assign_rhs1 (def);
									o70 = do_valueize (valueize, o70);
									if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
									  {
									    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									      tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
									      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
									        return true;
									    }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		{
		  tree op1_pops[1];
		  if (gimple_nop_convert (op1, op1_pops, valueize))
		    {
		      tree o40 = op1_pops[0];
		      switch (TREE_CODE (o40))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o40))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case PLUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
							{
							  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o50, o20 };
							    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      switch (TREE_CODE (o50))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o50))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
							{
							  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o51, o20 };
							    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o50, o20 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o51, o20 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  case POINTER_PLUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      switch (TREE_CODE (o50))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o50))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
							{
							  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o20, o51 };
							    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, NE_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o20, o51 };
					    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
}
		}
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o30))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (o31))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o31))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o50 = gimple_assign_rhs1 (def);
							o50 = do_valueize (valueize, o50);
							switch (TREE_CODE (op1))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, op1))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    CASE_CONVERT:
								      {
									tree o70 = gimple_assign_rhs1 (def);
									o70 = do_valueize (valueize, o70);
									if ((o70 == o50 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o50, 0) && types_match (o70, o50)))
									  {
									    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									      tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
									      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
									        return true;
									    }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
							if ((op1 == o50 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o50, 0) && types_match (op1, o50)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { o50, o30 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { o31, o30 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o31, o30 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case MINUS_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  switch (TREE_CODE (o50))
						    {
						    case INTEGER_CST:
						      {
							if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case MINUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (o41))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o41))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_logical_inverted_value (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	{
	  if (gimple_truth_valued_p (op1, valueize))
	    {
	      {
/* #line 1359 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { o20 };
		if (gimple_simplify_26 (res_op, seq, valueize, type, captures, NE_EXPR))
		  return true;
	      }
	    }
        }
}
}
{
  tree op0_pops[1];
  if (gimple_nop_convert (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      switch (TREE_CODE (o20))
        {
	case SSA_NAME:
	  if (gimple *def_stmt = get_def (valueize, o20))
	    {
	      if (gassign *def = dyn_cast <gassign *> (def_stmt))
	        switch (gimple_assign_rhs_code (def))
		  {
		  case PLUS_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      tree o31 = gimple_assign_rhs2 (def);
		      o31 = do_valueize (valueize, o31);
		      if (tree_swap_operands_p (o30, o31))
		        std::swap (o30, o31);
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o50 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o50, 0) && types_match (o70, o50)))
							{
							  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o50 };
							    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
							{
							  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o40 };
							    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o40 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      switch (TREE_CODE (o31))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o31))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((op1 == o50 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o50, 0) && types_match (op1, o50)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o50 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o60 = gimple_assign_rhs1 (def);
				      o60 = do_valueize (valueize, o60);
				      if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o30 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
			{
			  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
			    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
			      return true;
			  }
		        }
		      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
			{
			  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o31, o30 };
			    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
			      return true;
			  }
		        }
		      break;
		    }
		  case POINTER_PLUS_EXPR:
		    {
		      tree o30 = gimple_assign_rhs1 (def);
		      o30 = do_valueize (valueize, o30);
		      tree o31 = gimple_assign_rhs2 (def);
		      o31 = do_valueize (valueize, o31);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
							{
							  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, o31 };
							    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, NE_EXPR))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					{
					  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o40, o31 };
					    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o60 = gimple_assign_rhs1 (def);
				      o60 = do_valueize (valueize, o60);
				      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
					{
					  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
					    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
			{
			  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o30, o31 };
			    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, NE_EXPR))
			      return true;
			  }
		        }
		      break;
		    }
		  default:;
		  }
	    }
	  break;
        default:;
        }
}
}
if (gimple_truth_valued_p (op0, valueize))
  {
    {
      tree op1_pops[1];
      if (gimple_logical_inverted_value (op1, op1_pops, valueize))
        {
	  tree o30 = op1_pops[0];
	  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	    {
	      {
/* #line 1359 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[1] ATTRIBUTE_UNUSED = { op0 };
		if (gimple_simplify_26 (res_op, seq, valueize, type, captures, NE_EXPR))
		  return true;
	      }
	    }
}
    }
  }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, NE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op1_pops[1];
  if (gimple_nop_convert (op1, op1_pops, valueize))
    {
      tree o30 = op1_pops[0];
      switch (TREE_CODE (o30))
        {
	case SSA_NAME:
	  if (gimple *def_stmt = get_def (valueize, o30))
	    {
	      if (gassign *def = dyn_cast <gassign *> (def_stmt))
	        switch (gimple_assign_rhs_code (def))
		  {
		  case PLUS_EXPR:
		    {
		      tree o40 = gimple_assign_rhs1 (def);
		      o40 = do_valueize (valueize, o40);
		      tree o41 = gimple_assign_rhs2 (def);
		      o41 = do_valueize (valueize, o41);
		      if (tree_swap_operands_p (o40, o41))
		        std::swap (o40, o41);
		      switch (TREE_CODE (o41))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o41))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o60 = gimple_assign_rhs1 (def);
				      o60 = do_valueize (valueize, o60);
				      if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o40, op0 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      switch (TREE_CODE (o40))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o40))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o41, op0 };
					    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
			{
			  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o40, op0 };
			    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
			      return true;
			  }
		        }
		      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
			{
			  {
/* #line 1617 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o41, op0 };
			    if (gimple_simplify_83 (res_op, seq, valueize, type, captures, NE_EXPR))
			      return true;
			  }
		        }
		      break;
		    }
		  case POINTER_PLUS_EXPR:
		    {
		      tree o40 = gimple_assign_rhs1 (def);
		      o40 = do_valueize (valueize, o40);
		      tree o41 = gimple_assign_rhs2 (def);
		      o41 = do_valueize (valueize, o41);
		      switch (TREE_CODE (o40))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o40))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					{
					  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, op0, o41 };
					    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, NE_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
			{
			  {
/* #line 1626 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, op0, o41 };
			    if (gimple_simplify_278 (res_op, seq, valueize, type, captures, NE_EXPR))
			      return true;
			  }
		        }
		      break;
		    }
		  default:;
		  }
	    }
	  break;
        default:;
        }
}
}
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1636 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
			if (gimple_simplify_137 (res_op, seq, valueize, type, captures, NE_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o20))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (o21))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, o21))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o40 = gimple_assign_rhs1 (def);
					o40 = do_valueize (valueize, o40);
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			  {
			    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 1650 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_108 (res_op, seq, valueize, type, captures, NE_EXPR, GE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case MINUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o40))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (o41))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, o41))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == op0 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, op0, 0) && types_match (o60, op0)))
							  {
							    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							      tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
							      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
							        return true;
							    }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { op0, o40 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  switch (TREE_CODE (o30))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (o31))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, o31))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
					  {
					    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
					      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
					        return true;
					    }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
			  {
			    {
/* #line 1660 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			      if (gimple_simplify_33 (res_op, seq, valueize, type, captures, NE_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MIN_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_133 (res_op, seq, valueize, type, captures, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2314 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_8 (res_op, seq, valueize, type, captures, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_with_possible_nonzero_bits2 (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      {
	tree op1_pops[1];
	if (gimple_with_certain_nonzero_bits2 (op1, op1_pops, valueize))
	  {
	    tree o40 = op1_pops[0];
	    {
/* #line 1687 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
	      if (gimple_simplify_144 (res_op, seq, valueize, type, captures, NE_EXPR))
	        return true;
	    }
}
      }
}
}
{
  tree op0_pops[1];
  if (gimple_with_certain_nonzero_bits2 (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      {
	tree op1_pops[1];
	if (gimple_with_possible_nonzero_bits2 (op1, op1_pops, valueize))
	  {
	    tree o40 = op1_pops[0];
	    {
/* #line 1687 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
	      if (gimple_simplify_144 (res_op, seq, valueize, type, captures, NE_EXPR))
	        return true;
	    }
}
      }
}
}
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MIN_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MIN_EXPR, NE_EXPR, GT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 2298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_7 (res_op, seq, valueize, type, captures, MAX_EXPR, NE_EXPR, LT_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case LSHIFT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (integer_onep (o30))
				    {
				      if (integer_onep (o21))
					{
					  if (integer_zerop (op1))
					    {
					      {
/* #line 2423 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[1] ATTRIBUTE_UNUSED = { o31 };
						if (gimple_simplify_59 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR))
						  return true;
					      }
					    }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LSHIFT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2431 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_112 (res_op, seq, valueize, type, captures, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 3198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_153 (res_op, seq, valueize, type, captures, NE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case POINTER_DIFF_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 3198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_96 (res_op, seq, valueize, type, captures, NE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if (integer_zerop (op1))
			  {
			    {
/* #line 3210 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			      if (gimple_simplify_85 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR))
			        return true;
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3233 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_215 (res_op, seq, valueize, type, captures, NE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3254 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_106 (res_op, seq, valueize, type, captures, NE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		      if (gimple_simplify_157 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, NE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3270 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
		    if (gimple_simplify_14 (res_op, seq, valueize, type, captures, NE_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 3300 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_307 (res_op, seq, valueize, type, captures, NE_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, PLUS_EXPR, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3360 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_209 (res_op, seq, valueize, type, captures, MINUS_EXPR, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case REAL_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case REAL_CST:
			    {
			      {
/* #line 3376 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_210 (res_op, seq, valueize, type, captures, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3510 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_35 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case EXACT_DIV_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 3578 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			  if (gimple_simplify_204 (res_op, seq, valueize, type, captures, NE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if (zerop (op1))
		    {
		      {
/* #line 3691 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			if (gimple_simplify_178 (res_op, seq, valueize, type, captures, NE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_299 (res_op, seq, valueize, type, captures, NE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 3698 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, op1 };
		    if (gimple_simplify_97 (res_op, seq, valueize, type, captures, NE_EXPR))
		      return true;
		  }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 3777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
						if (gimple_simplify_60 (res_op, seq, valueize, type, captures, NE_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 3777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_60 (res_op, seq, valueize, type, captures, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 3784 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_232 (res_op, seq, valueize, type, captures, NE_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 3790 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_233 (res_op, seq, valueize, type, captures, NE_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 3790 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_233 (res_op, seq, valueize, type, captures, NE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTF:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, NE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTF, NE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, NE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRT, NE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_BUILT_IN_SQRTL:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, NE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_SQRTL, NE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gcall *def = dyn_cast <gcall *> (def_stmt))
			    switch (gimple_call_combined_fn (def))
			      {
			      case CFN_SQRT:
			        {
				  tree o40 = gimple_call_arg (def, 0);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_41 (res_op, seq, valueize, type, captures, CFN_SQRT, NE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case REAL_CST:
		      {
			{
/* #line 3384 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_64 (res_op, seq, valueize, type, captures, CFN_SQRT, NE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    {
	      {
/* #line 3761 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		if (gimple_simplify_283 (res_op, seq, valueize, type, captures, NE_EXPR))
		  return true;
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_XOR_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 3790 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
			if (gimple_simplify_233 (res_op, seq, valueize, type, captures, NE_EXPR))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 3790 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_233 (res_op, seq, valueize, type, captures, NE_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 3795 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, op1 };
						if (gimple_simplify_1 (res_op, seq, valueize, type, captures, NE_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    case ADDR_EXPR:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o40 = gimple_assign_rhs1 (def);
					o40 = do_valueize (valueize, o40);
					switch (TREE_CODE (o40))
					  {
					  case ADDR_EXPR:
					    {
					      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
						if (gimple_simplify_132 (res_op, seq, valueize, type, captures, NE_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, op1 };
				if (gimple_simplify_132 (res_op, seq, valueize, type, captures, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		      if (integer_zerop (op1))
			{
			  {
/* #line 3800 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			    if (gimple_simplify_98 (res_op, seq, valueize, type, captures, NE_EXPR))
			      return true;
			  }
		        }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 3795 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_1 (res_op, seq, valueize, type, captures, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_pow2p (o21))
		    {
		      if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			{
			  {
/* #line 3809 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			    if (gimple_simplify_192 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR))
			      return true;
			  }
		        }
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  if (integer_pow2p (o21))
				    {
				      if (integer_zerop (op1))
					{
					  {
/* #line 3835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o30, o21 };
					    if (gimple_simplify_149 (res_op, seq, valueize, type, captures, NE_EXPR, LT_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if (integer_pow2p (o21))
		    {
		      if (integer_zerop (op1))
			{
			  {
/* #line 3835 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o20, o21 };
			    if (gimple_simplify_219 (res_op, seq, valueize, type, captures, NE_EXPR, LT_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case ADDR_EXPR:
      {
	switch (TREE_CODE (op1))
	  {
	  case SSA_NAME:
	    if (gimple *def_stmt = get_def (valueize, op1))
	      {
		if (gassign *def = dyn_cast <gassign *> (def_stmt))
		  switch (gimple_assign_rhs_code (def))
		    {
		    CASE_CONVERT:
		      {
			tree o30 = gimple_assign_rhs1 (def);
			o30 = do_valueize (valueize, o30);
			switch (TREE_CODE (o30))
			  {
			  case ADDR_EXPR:
			    {
			      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, o30 };
				if (gimple_simplify_169 (res_op, seq, valueize, type, captures, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	      }
	    break;
	  case ADDR_EXPR:
	    {
	      {
/* #line 3868 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[3] ATTRIBUTE_UNUSED = { op0, op0, op1 };
		if (gimple_simplify_169 (res_op, seq, valueize, type, captures, NE_EXPR))
		  return true;
	      }
	      break;
	    }
          default:;
          }
      if (integer_zerop (op1))
	{
	  {
/* #line 3800 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	    if (gimple_simplify_98 (res_op, seq, valueize, type, captures, NE_EXPR))
	      return true;
	  }
        }
        break;
      }
    default:;
    }
  {
/* #line 3985 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_308 (res_op, seq, valueize, type, captures, NE_EXPR))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 3998 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_226 (res_op, seq, valueize, type, captures, NE_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4106 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 4106 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE && types_match (type, TREE_TYPE (captures[0])))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4108, __FILE__, __LINE__);
	    tree tem;
	    tem = captures[0];
	    res_op->set_value (tem);
	    return true;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4921 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_242 (res_op, seq, valueize, type, captures, PLUS_EXPR, MINUS_EXPR, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 4921 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
				if (gimple_simplify_242 (res_op, seq, valueize, type, captures, MINUS_EXPR, PLUS_EXPR, NE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_POPCOUNT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTLL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POPCOUNTIMAX:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (integer_zerop (op1))
		    {
		      {
/* #line 5173 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_56 (res_op, seq, valueize, type, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POWF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  const combined_fn pows = CFN_BUILT_IN_POWF;
			  {
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 HOST_WIDE_INT n;
/* #line 601 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 602, __FILE__, __LINE__);
				  res_op->set_op (pows, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[1];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			  }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  const combined_fn pows = CFN_BUILT_IN_POWF;
			  {
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 HOST_WIDE_INT n;
/* #line 601 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 602, __FILE__, __LINE__);
				  res_op->set_op (pows, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[1];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			  }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 645 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			  if (gimple_simplify_79 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF, CFN_BUILT_IN_COPYSIGNF))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXPF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXPF, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP2F, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP10F, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10F:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW10F, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4611, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POWF, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[2], res;
			  ops1[0] = captures[1];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4615, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POWF, type, 2);
			    res_op->ops[0] = captures[0];
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] =  build_real_truncate (type, dconst_third ());
			      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      gimple_resimplify2 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[1] = res;
			    }
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4619, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POWF, type, 2);
			    res_op->ops[0] = captures[0];
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[2];
			      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      gimple_resimplify2 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[1] = res;
			    }
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_231 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF, CFN_BUILT_IN_EXPF, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXP2F, CFN_BUILT_IN_LOG2F))
	    return true;
	}
        break;
      }
    default:;
    }
if (real_onep (op0))
  {
    {
/* #line 4484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_77 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWF))
        return true;
    }
  }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  {
/* #line 4777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 const REAL_VALUE_TYPE *value = TREE_REAL_CST_PTR (captures[1]);
 REAL_VALUE_TYPE tmp;
/* #line 4783 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (real_equal (value, &dconst0))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4784, __FILE__, __LINE__);
		  tree tem;
		  tem =  build_real (type, dconst1);
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 4786 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (real_equal (value, &dconst1))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4787, __FILE__, __LINE__);
		      tree tem;
		      tem = captures[0];
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 4789 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (real_equal (value, &dconstm1))
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4790, __FILE__, __LINE__);
			  res_op->set_op (RDIV_EXPR, type, 2);
			  res_op->ops[0] =  build_real (type, dconst1);
			  res_op->ops[1] = captures[0];
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
/* #line 4792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (flag_unsafe_math_optimizations && canonicalize_math_p () && real_equal (value, &dconsthalf))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4795, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_SQRTF, type, 1);
			      res_op->ops[0] = captures[0];
			      gimple_resimplify1 (lseq, res_op, valueize);
			      return true;
			    }
			  else
			    {
/* #line 4797 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations && canonicalize_math_p () && (tmp = real_value_truncate (TYPE_MODE (type), dconst_third ()), real_equal (value, &tmp)))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4801, __FILE__, __LINE__);
				  res_op->set_op (CFN_BUILT_IN_CBRTF, type, 1);
				  res_op->ops[0] = captures[0];
				  gimple_resimplify1 (lseq, res_op, valueize);
				  return true;
				}
			    }
			}
		    }
		}
	  }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POW (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  const combined_fn pows = CFN_BUILT_IN_POW;
			  {
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 HOST_WIDE_INT n;
/* #line 601 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 602, __FILE__, __LINE__);
				  res_op->set_op (pows, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[1];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			  }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  const combined_fn pows = CFN_BUILT_IN_POW;
			  {
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 HOST_WIDE_INT n;
/* #line 601 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 602, __FILE__, __LINE__);
				  res_op->set_op (pows, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[1];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			  }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 645 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			  if (gimple_simplify_79 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW, CFN_BUILT_IN_COPYSIGN))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP2, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP10, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW10, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4611, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[2], res;
			  ops1[0] = captures[1];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4615, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POW, type, 2);
			    res_op->ops[0] = captures[0];
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] =  build_real_truncate (type, dconst_third ());
			      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      gimple_resimplify2 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[1] = res;
			    }
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4619, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POW, type, 2);
			    res_op->ops[0] = captures[0];
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[2];
			      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      gimple_resimplify2 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[1] = res;
			    }
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_231 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW, CFN_BUILT_IN_EXP, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP2, CFN_BUILT_IN_LOG2))
	    return true;
	}
        break;
      }
    default:;
    }
if (real_onep (op0))
  {
    {
/* #line 4484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_77 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POW))
        return true;
    }
  }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  {
/* #line 4777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 const REAL_VALUE_TYPE *value = TREE_REAL_CST_PTR (captures[1]);
 REAL_VALUE_TYPE tmp;
/* #line 4783 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (real_equal (value, &dconst0))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4784, __FILE__, __LINE__);
		  tree tem;
		  tem =  build_real (type, dconst1);
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 4786 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (real_equal (value, &dconst1))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4787, __FILE__, __LINE__);
		      tree tem;
		      tem = captures[0];
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 4789 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (real_equal (value, &dconstm1))
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4790, __FILE__, __LINE__);
			  res_op->set_op (RDIV_EXPR, type, 2);
			  res_op->ops[0] =  build_real (type, dconst1);
			  res_op->ops[1] = captures[0];
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
/* #line 4792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (flag_unsafe_math_optimizations && canonicalize_math_p () && real_equal (value, &dconsthalf))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4795, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_SQRT, type, 1);
			      res_op->ops[0] = captures[0];
			      gimple_resimplify1 (lseq, res_op, valueize);
			      return true;
			    }
			  else
			    {
/* #line 4797 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations && canonicalize_math_p () && (tmp = real_value_truncate (TYPE_MODE (type), dconst_third ()), real_equal (value, &tmp)))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4801, __FILE__, __LINE__);
				  res_op->set_op (CFN_BUILT_IN_CBRT, type, 1);
				  res_op->ops[0] = captures[0];
				  gimple_resimplify1 (lseq, res_op, valueize);
				  return true;
				}
			    }
			}
		    }
		}
	  }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POWL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  const combined_fn pows = CFN_BUILT_IN_POWL;
			  {
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 HOST_WIDE_INT n;
/* #line 601 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 602, __FILE__, __LINE__);
				  res_op->set_op (pows, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[1];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			  }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  const combined_fn pows = CFN_BUILT_IN_POWL;
			  {
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 HOST_WIDE_INT n;
/* #line 601 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 602, __FILE__, __LINE__);
				  res_op->set_op (pows, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[1];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			  }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 645 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			  if (gimple_simplify_79 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL, CFN_BUILT_IN_COPYSIGNL))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_BUILT_IN_EXPL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXPL, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP2L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP2L, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_EXP10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_EXP10L, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_POW10L:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POW10L, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_SQRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4611, __FILE__, __LINE__);
			res_op->set_op (CFN_BUILT_IN_POWL, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[2], res;
			  ops1[0] = captures[1];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_BUILT_IN_CBRTL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4615, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POWL, type, 2);
			    res_op->ops[0] = captures[0];
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] =  build_real_truncate (type, dconst_third ());
			      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      gimple_resimplify2 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[1] = res;
			    }
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      case CFN_BUILT_IN_POWL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4619, __FILE__, __LINE__);
			    res_op->set_op (CFN_BUILT_IN_POWL, type, 2);
			    res_op->ops[0] = captures[0];
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[2];
			      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      gimple_resimplify2 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[1] = res;
			    }
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_231 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL, CFN_BUILT_IN_EXPL, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXP2L, CFN_BUILT_IN_LOG2L))
	    return true;
	}
        break;
      }
    default:;
    }
if (real_onep (op0))
  {
    {
/* #line 4484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_77 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_POWL))
        return true;
    }
  }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  {
/* #line 4777 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 const REAL_VALUE_TYPE *value = TREE_REAL_CST_PTR (captures[1]);
 REAL_VALUE_TYPE tmp;
/* #line 4783 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (real_equal (value, &dconst0))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4784, __FILE__, __LINE__);
		  tree tem;
		  tem =  build_real (type, dconst1);
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 4786 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (real_equal (value, &dconst1))
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4787, __FILE__, __LINE__);
		      tree tem;
		      tem = captures[0];
		      res_op->set_value (tem);
		      return true;
		    }
		  else
		    {
/* #line 4789 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      if (real_equal (value, &dconstm1))
			{
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4790, __FILE__, __LINE__);
			  res_op->set_op (RDIV_EXPR, type, 2);
			  res_op->ops[0] =  build_real (type, dconst1);
			  res_op->ops[1] = captures[0];
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      else
			{
/* #line 4792 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if (flag_unsafe_math_optimizations && canonicalize_math_p () && real_equal (value, &dconsthalf))
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4795, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_SQRTL, type, 1);
			      res_op->ops[0] = captures[0];
			      gimple_resimplify1 (lseq, res_op, valueize);
			      return true;
			    }
			  else
			    {
/* #line 4797 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (flag_unsafe_math_optimizations && canonicalize_math_p () && (tmp = real_value_truncate (TYPE_MODE (type), dconst_third ()), real_equal (value, &tmp)))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4801, __FILE__, __LINE__);
				  res_op->set_op (CFN_BUILT_IN_CBRTL, type, 1);
				  res_op->ops[0] = captures[0];
				  gimple_resimplify1 (lseq, res_op, valueize);
				  return true;
				}
			    }
			}
		    }
		}
	  }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_POW (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  const combined_fn pows = CFN_POW;
			  {
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 HOST_WIDE_INT n;
/* #line 601 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 602, __FILE__, __LINE__);
				  res_op->set_op (pows, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[1];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			  }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  const combined_fn pows = CFN_POW;
			  {
/* #line 600 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 HOST_WIDE_INT n;
/* #line 601 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (real_isinteger (&TREE_REAL_CST (captures[1]), &n) && (n & 1) == 0)
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 602, __FILE__, __LINE__);
				  res_op->set_op (pows, type, 2);
				  res_op->ops[0] = captures[0];
				  res_op->ops[1] = captures[1];
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			  }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case REAL_CST:
		      {
			{
/* #line 645 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			  if (gimple_simplify_79 (res_op, seq, valueize, type, captures, CFN_POW, CFN_COPYSIGN))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case CFN_EXP:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_EXP, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_EXP2:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_EXP2, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_EXP10:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations)
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4393, __FILE__, __LINE__);
			res_op->set_op (CFN_EXP10, type, 1);
			{
			  tree ops1[2], res;
			  ops1[0] = captures[0];
			  ops1[1] = captures[1];
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[0] = res;
			}
			gimple_resimplify1 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_SQRT:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (flag_unsafe_math_optimizations && canonicalize_math_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4611, __FILE__, __LINE__);
			res_op->set_op (CFN_POW, type, 2);
			res_op->ops[0] = captures[0];
			{
			  tree ops1[2], res;
			  ops1[0] = captures[1];
			  ops1[1] =  build_real (type, dconsthalf);
			  gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			  gimple_resimplify2 (lseq, &tem_op, valueize);
			  res = maybe_push_res_to_seq (&tem_op, lseq);
			  if (!res) return false;
			  res_op->ops[1] = res;
			}
			gimple_resimplify2 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      case CFN_POW:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  if (tree_expr_nonnegative_p (o20))
		    {
		      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (flag_unsafe_math_optimizations && canonicalize_math_p ())
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4619, __FILE__, __LINE__);
			    res_op->set_op (CFN_POW, type, 2);
			    res_op->ops[0] = captures[0];
			    {
			      tree ops1[2], res;
			      ops1[0] = captures[1];
			      ops1[1] = captures[2];
			      gimple_match_op tem_op (res_op->cond.any_else (), MULT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			      gimple_resimplify2 (lseq, &tem_op, valueize);
			      res = maybe_push_res_to_seq (&tem_op, lseq);
			      if (!res) return false;
			      res_op->ops[1] = res;
			    }
			    gimple_resimplify2 (lseq, res_op, valueize);
			    return true;
			  }
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case REAL_CST:
      {
	{
/* #line 4198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_231 (res_op, seq, valueize, type, captures, CFN_POW, CFN_EXP, CFN_LOG, CFN_EXP2, CFN_LOG2))
	    return true;
	}
        break;
      }
    default:;
    }
if (real_onep (op0))
  {
    {
/* #line 4484 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_77 (res_op, seq, valueize, type, captures, CFN_POW))
        return true;
    }
  }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POWIF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if ((wi::to_wide (captures[1]) & 1) == 0)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 608, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_POWIF, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[1];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if ((wi::to_wide (captures[1]) & 1) == 0)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 608, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_POWIF, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[1];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 653 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
/* #line 653 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if ((wi::to_wide (captures[2]) & 1) == 0)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 654, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_POWIF, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[2];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (real_onep (op0))
  {
    {
/* #line 4806 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_135 (res_op, seq, valueize, type, captures))
        return true;
    }
  }
  switch (TREE_CODE (op1))
    {
    case INTEGER_CST:
      {
	{
/* #line 4812 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4812 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (wi::to_wide (captures[1]) == 0)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4813, __FILE__, __LINE__);
	      tree tem;
	      tem =  build_real (type, dconst1);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
/* #line 4815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (wi::to_wide (captures[1]) == 1)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4816, __FILE__, __LINE__);
		  tree tem;
		  tem = captures[0];
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 4818 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (wi::to_wide (captures[1]) == -1)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4819, __FILE__, __LINE__);
		      res_op->set_op (RDIV_EXPR, type, 2);
		      res_op->ops[0] =  build_real (type, dconst1);
		      res_op->ops[1] = captures[0];
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		}
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POWI (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if ((wi::to_wide (captures[1]) & 1) == 0)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 608, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_POWI, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[1];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if ((wi::to_wide (captures[1]) & 1) == 0)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 608, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_POWI, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[1];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 653 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
/* #line 653 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if ((wi::to_wide (captures[2]) & 1) == 0)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 654, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_POWI, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[2];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (real_onep (op0))
  {
    {
/* #line 4806 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_135 (res_op, seq, valueize, type, captures))
        return true;
    }
  }
  switch (TREE_CODE (op1))
    {
    case INTEGER_CST:
      {
	{
/* #line 4812 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4812 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (wi::to_wide (captures[1]) == 0)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4813, __FILE__, __LINE__);
	      tree tem;
	      tem =  build_real (type, dconst1);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
/* #line 4815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (wi::to_wide (captures[1]) == 1)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4816, __FILE__, __LINE__);
		  tree tem;
		  tem = captures[0];
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 4818 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (wi::to_wide (captures[1]) == -1)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4819, __FILE__, __LINE__);
		      res_op->set_op (RDIV_EXPR, type, 2);
		      res_op->ops[0] =  build_real (type, dconst1);
		      res_op->ops[1] = captures[0];
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		}
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_POWIL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if ((wi::to_wide (captures[1]) & 1) == 0)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 608, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_POWIL, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[1];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 607 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if ((wi::to_wide (captures[1]) & 1) == 0)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 608, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_POWIL, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[1];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 653 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
/* #line 653 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  if ((wi::to_wide (captures[2]) & 1) == 0)
			    {
			      gimple_seq *lseq = seq;
			      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 654, __FILE__, __LINE__);
			      res_op->set_op (CFN_BUILT_IN_POWIL, type, 2);
			      res_op->ops[0] = captures[0];
			      res_op->ops[1] = captures[2];
			      gimple_resimplify2 (lseq, res_op, valueize);
			      return true;
			    }
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (real_onep (op0))
  {
    {
/* #line 4806 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_135 (res_op, seq, valueize, type, captures))
        return true;
    }
  }
  switch (TREE_CODE (op1))
    {
    case INTEGER_CST:
      {
	{
/* #line 4812 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4812 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (wi::to_wide (captures[1]) == 0)
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4813, __FILE__, __LINE__);
	      tree tem;
	      tem =  build_real (type, dconst1);
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
/* #line 4815 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (wi::to_wide (captures[1]) == 1)
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4816, __FILE__, __LINE__);
		  tree tem;
		  tem = captures[0];
		  res_op->set_value (tem);
		  return true;
		}
	      else
		{
/* #line 4818 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		  if (wi::to_wide (captures[1]) == -1)
		    {
		      gimple_seq *lseq = seq;
		      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4819, __FILE__, __LINE__);
		      res_op->set_op (RDIV_EXPR, type, 2);
		      res_op->ops[0] =  build_real (type, dconst1);
		      res_op->ops[1] = captures[0];
		      gimple_resimplify2 (lseq, res_op, valueize);
		      return true;
		    }
		}
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_HYPOTF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 613 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOTF;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 613 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOTF;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 616 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOTF;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 616, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 616 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOTF;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 616, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 661 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_13 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTF, CFN_BUILT_IN_COPYSIGNF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNF:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 665 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
		    if (gimple_simplify_141 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTF, CFN_BUILT_IN_COPYSIGNF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (real_zerop (op1))
  {
    {
/* #line 4479 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTF))
        return true;
    }
  }
  if (real_zerop (op0))
    {
      {
/* #line 4479 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTF))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_131 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTF))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_HYPOT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 613 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOT;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 613 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOT;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 616 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOT;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 616, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 616 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOT;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 616, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 661 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_13 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOT, CFN_BUILT_IN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGN:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 665 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
		    if (gimple_simplify_141 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOT, CFN_BUILT_IN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (real_zerop (op1))
  {
    {
/* #line 4479 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOT))
        return true;
    }
  }
  if (real_zerop (op0))
    {
      {
/* #line 4479 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOT))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_131 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOT))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_HYPOTL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 613 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOTL;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 613 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOTL;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 616 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOTL;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 616, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 616 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    const combined_fn hypots = CFN_BUILT_IN_HYPOTL;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 616, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 661 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_13 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTL, CFN_BUILT_IN_COPYSIGNL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_BUILT_IN_COPYSIGNL:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 665 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
		    if (gimple_simplify_141 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTL, CFN_BUILT_IN_COPYSIGNL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (real_zerop (op1))
  {
    {
/* #line 4479 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTL))
        return true;
    }
  }
  if (real_zerop (op0))
    {
      {
/* #line 4479 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTL))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_131 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_HYPOTL))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_CFN_HYPOT (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 613 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn hypots = CFN_HYPOT;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 613 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    const combined_fn hypots = CFN_HYPOT;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 613, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 616 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    const combined_fn hypots = CFN_HYPOT;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 616, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      case ABS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 616 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
		    const combined_fn hypots = CFN_HYPOT;
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 616, __FILE__, __LINE__);
		    res_op->set_op (hypots, type, 2);
		    res_op->ops[0] = captures[0];
		    res_op->ops[1] = captures[1];
		    gimple_resimplify2 (lseq, res_op, valueize);
		    return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_COPYSIGN:
	        {
		  tree o20 = gimple_call_arg (def, 0);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_call_arg (def, 1);
		  o21 = do_valueize (valueize, o21);
		  {
/* #line 661 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
		    if (gimple_simplify_13 (res_op, seq, valueize, type, captures, CFN_HYPOT, CFN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_COPYSIGN:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 665 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o31 };
		    if (gimple_simplify_141 (res_op, seq, valueize, type, captures, CFN_HYPOT, CFN_COPYSIGN))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (real_zerop (op1))
  {
    {
/* #line 4479 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
      if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_HYPOT))
        return true;
    }
  }
  if (real_zerop (op0))
    {
      {
/* #line 4479 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	if (gimple_simplify_150 (res_op, seq, valueize, type, captures, CFN_HYPOT))
	  return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 4519 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_131 (res_op, seq, valueize, type, captures, CFN_HYPOT))
	  return true;
      }
    }
  return false;
}

static bool
gimple_simplify_LSHIFT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case RSHIFT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			  {
			    {
/* #line 2345 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 2345 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type)))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2346, __FILE__, __LINE__);
				  res_op->set_op (BIT_AND_EXPR, type, 2);
				  res_op->ops[0] = captures[0];
				  {
				    tree ops1[2], res;
				    ops1[0] =  build_minus_one_cst (type);
				    ops1[1] = captures[1];
				    gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				    gimple_resimplify2 (lseq, &tem_op, valueize);
				    res = maybe_push_res_to_seq (&tem_op, lseq);
				    if (!res) return false;
				    res_op->ops[1] = res;
				  }
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_onep (op0))
  {
    switch (TREE_CODE (op1))
      {
      case SSA_NAME:
        if (gimple *def_stmt = get_def (valueize, op1))
          {
	    if (gassign *def = dyn_cast <gassign *> (def_stmt))
	      switch (gimple_assign_rhs_code (def))
		{
		case MINUS_EXPR:
		  {
		    tree o30 = gimple_assign_rhs1 (def);
		    o30 = do_valueize (valueize, o30);
		    tree o31 = gimple_assign_rhs2 (def);
		    o31 = do_valueize (valueize, o31);
		    switch (TREE_CODE (o30))
		      {
		      case INTEGER_CST:
		        {
			  {
/* #line 711 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o31 };
/* #line 711 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (INTEGRAL_TYPE_P (type) && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1) && single_use (captures[1]))
			      {
/* #line 714 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (TYPE_UNSIGNED (type))
				  {
				    gimple_seq *lseq = seq;
				    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 715, __FILE__, __LINE__);
				    res_op->set_op (RSHIFT_EXPR, type, 2);
				    {
				      tree ops1[2], res;
				      ops1[0] = captures[0];
				      ops1[1] = captures[2];
				      gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				      gimple_resimplify2 (lseq, &tem_op, valueize);
				      res = maybe_push_res_to_seq (&tem_op, lseq);
				      if (!res) return false;
				      res_op->ops[0] = res;
				    }
				    res_op->ops[1] = captures[3];
				    gimple_resimplify2 (lseq, res_op, valueize);
				    return true;
				  }
				else
				  {
				    {
/* #line 716 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree utype = unsigned_type_for (type);
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 718, __FILE__, __LINE__);
					res_op->set_op (NOP_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  {
					    tree ops2[2], res;
					    {
					      tree ops3[1], res;
					      ops3[0] = captures[0];
					      if (utype != TREE_TYPE (ops3[0])
					          && !useless_type_conversion_p (utype, TREE_TYPE (ops3[0])))
						{
						  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, utype, ops3[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
					        }
					      else
					        res = ops3[0];
					      ops2[0] = res;
					    }
					    ops2[1] = captures[2];
					    gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
					    gimple_resimplify2 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    ops1[0] = res;
					  }
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				    }
				  }
			      }
			  }
		          break;
		        }
		      default:;
		      }
		    break;
		  }
		default:;
		}
          }
        break;
      default:;
      }
  }
  if (integer_zerop (op1))
    {
      {
/* #line 2359 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_50 (res_op, seq, valueize, type, captures, LSHIFT_EXPR))
	  return true;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 2362 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_87 (res_op, seq, valueize, type, captures, LSHIFT_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CONSTRUCTOR:
	        {
		  {
/* #line 2368 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (gimple_simplify_12 (res_op, seq, valueize, type, captures, LSHIFT_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
	{
	  {
/* #line 2378 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	    if (gimple_simplify_15 (res_op, seq, valueize, type, captures, LSHIFT_EXPR))
	      return true;
	  }
	}
      break;
    case VECTOR_CST:
      {
	{
/* #line 2368 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_127 (res_op, seq, valueize, type, captures, LSHIFT_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LSHIFT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2399 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_109 (res_op, seq, valueize, type, captures, LSHIFT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
						if (gimple_simplify_293 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LSHIFT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
						if (gimple_simplify_293 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, LSHIFT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
						if (gimple_simplify_293 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LSHIFT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
				if (gimple_simplify_280 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LSHIFT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
				if (gimple_simplify_280 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, LSHIFT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
				if (gimple_simplify_280 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, LSHIFT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_BIT_AND_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
						    {
						      {
/* #line 733 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[1] ATTRIBUTE_UNUSED = { o20 };
							if (gimple_simplify_243 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  if ((o50 == o30 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o30, 0) && types_match (o50, o30)))
						    {
						      {
/* #line 733 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[1] ATTRIBUTE_UNUSED = { o30 };
							if (gimple_simplify_243 (res_op, seq, valueize, type, captures))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 733 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_243 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 733 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_243 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case LSHIFT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (integer_onep (o40))
				    {
				      if (integer_minus_onep (o31))
					{
					  {
/* #line 738 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o30, o41 };
/* #line 738 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (TYPE_UNSIGNED (type))
					      {
						gimple_seq *lseq = seq;
						if (lseq
						    && (!single_use (captures[1])
						        || !single_use (captures[2])))
						  lseq = NULL;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 739, __FILE__, __LINE__);
						res_op->set_op (BIT_AND_EXPR, type, 2);
						res_op->ops[0] = captures[0];
						{
						  tree ops1[1], res;
						  {
						    tree ops2[2], res;
						    ops2[0] =  build_all_ones_cst (type);
						    ops2[1] = captures[3];
						    gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    ops1[0] = res;
						  }
						  gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
						  res_op->ops[1] = res;
						}
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case LSHIFT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (integer_onep (o30))
				    {
				      if (integer_minus_onep (o21))
					{
					  {
/* #line 738 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[4] ATTRIBUTE_UNUSED = { op1, op0, o20, o31 };
/* #line 738 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (TYPE_UNSIGNED (type))
					      {
						gimple_seq *lseq = seq;
						if (lseq
						    && (!single_use (captures[1])
						        || !single_use (captures[2])))
						  lseq = NULL;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 739, __FILE__, __LINE__);
						res_op->set_op (BIT_AND_EXPR, type, 2);
						res_op->ops[0] = captures[0];
						{
						  tree ops1[1], res;
						  {
						    tree ops2[2], res;
						    ops2[0] =  build_all_ones_cst (type);
						    ops2[1] = captures[3];
						    gimple_match_op tem_op (res_op->cond.any_else (), LSHIFT_EXPR, TREE_TYPE (ops2[0]), ops2[0], ops2[1]);
						    gimple_resimplify2 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						    ops1[0] = res;
						  }
						  gimple_match_op tem_op (res_op->cond.any_else (), BIT_NOT_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
						  res_op->ops[1] = res;
						}
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				        }
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 852 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
						if (gimple_simplify_76 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, PLUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 852 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
						if (gimple_simplify_76 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, PLUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 852 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
						if (gimple_simplify_76 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, PLUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 863 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
						if (gimple_simplify_312 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, PLUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 863 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
						if (gimple_simplify_312 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, PLUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 863 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
						if (gimple_simplify_312 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, PLUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 874 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			  if (gimple_simplify_38 (res_op, seq, valueize, type, captures, PLUS_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case EQ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (integer_zerop (o21))
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case EQ_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      if (integer_zerop (o51))
					{
					  {
/* #line 748 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					    if (gimple_simplify_216 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
		  if (integer_all_onesp (o21))
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case EQ_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      if (integer_all_onesp (o51))
					{
					  {
/* #line 757 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, o50 };
					    if (gimple_simplify_88 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_XOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
							{
							  {
/* #line 804 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
							    if (gimple_simplify_181 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
							{
							  {
/* #line 804 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
							    if (gimple_simplify_181 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
							{
							  {
/* #line 804 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
							    if (gimple_simplify_181 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
						    {
						      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
							{
							  {
/* #line 804 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o31, o30 };
							    if (gimple_simplify_181 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
				    {
				      {
/* #line 970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o30, o20, o31 };
					if (gimple_simplify_128 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o31, 0) && types_match (op1, o31)))
				    {
				      {
/* #line 970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o31, o20, o30 };
					if (gimple_simplify_128 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
			{
			  switch (TREE_CODE (op1))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 836 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 836 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && wi::bit_and_not (get_nonzero_bits (captures[0]), wi::to_wide (captures[1])) == 0)
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 838, __FILE__, __LINE__);
				      res_op->set_op (BIT_XOR_EXPR, type, 2);
				      res_op->ops[0] = captures[0];
				      res_op->ops[1] = captures[1];
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				}
			        break;
			      }
			    default:;
			    }
			}
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 852 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
						if (gimple_simplify_76 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, MINUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 852 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
						if (gimple_simplify_76 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, MINUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 852 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1 };
						if (gimple_simplify_76 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, MINUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 863 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
						if (gimple_simplify_312 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, MINUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 863 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
						if (gimple_simplify_312 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, MINUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 863 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o21, o40, o41, op1 };
						if (gimple_simplify_312 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, MINUS_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 874 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, op1 };
			  if (gimple_simplify_38 (res_op, seq, valueize, type, captures, MINUS_EXPR))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 886 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
						if (gimple_simplify_117 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 886 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
						if (gimple_simplify_117 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 886 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
						if (gimple_simplify_117 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (integer_zerop (op1))
    {
      {
/* #line 920 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 920, __FILE__, __LINE__);
	tree tem;
	tem = captures[1];
	res_op->set_value (tem);
	return true;
      }
    }
  if (integer_all_onesp (op1))
    {
      {
/* #line 943 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 943, __FILE__, __LINE__);
	tree tem;
	tem = captures[0];
	res_op->set_value (tem);
	return true;
      }
    }
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 949 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_225 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      {
	switch (TREE_CODE (op1))
	  {
	  case INTEGER_CST:
	    {
	      {
/* #line 955 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 955 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && wi::bit_and_not (get_nonzero_bits (captures[0]), wi::to_wide (captures[1])) == 0)
		  {
		    gimple_seq *lseq = seq;
		    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 957, __FILE__, __LINE__);
		    tree tem;
		    tem = captures[0];
		    res_op->set_value (tem);
		    return true;
		  }
	      }
	      break;
	    }
          default:;
          }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_NOT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
				    {
				      {
/* #line 970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o41 };
					if (gimple_simplify_128 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, op0, 0) && types_match (o41, op0)))
				    {
				      {
/* #line 970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { op0, o30, o40 };
					if (gimple_simplify_128 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1003 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
					if (gimple_simplify_188 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1003 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o21, o20, op1 };
					if (gimple_simplify_188 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
							{
							  {
/* #line 1055 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
							    if (gimple_simplify_267 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case BIT_NOT_EXPR:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
							{
							  {
/* #line 1060 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
							    if (gimple_simplify_214 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				    }
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
							{
							  {
/* #line 1060 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
							    if (gimple_simplify_214 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
							{
							  {
/* #line 1060 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
							    if (gimple_simplify_214 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      switch (TREE_CODE (o51))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, o51))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case BIT_NOT_EXPR:
						    {
						      tree o70 = gimple_assign_rhs1 (def);
						      o70 = do_valueize (valueize, o70);
						      if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
							{
							  {
/* #line 1060 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
							    if (gimple_simplify_214 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									{
									  {
/* #line 1065 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o21, op1 };
									    if (gimple_simplify_272 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o21 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o21, 0) && types_match (o70, o21)))
								    {
								      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
									{
									  {
/* #line 1065 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o21, op1 };
									    if (gimple_simplify_272 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      switch (TREE_CODE (o61))
						        {
							case SSA_NAME:
							  if (gimple *def_stmt = get_def (valueize, o61))
							    {
							      if (gassign *def = dyn_cast <gassign *> (def_stmt))
							        switch (gimple_assign_rhs_code (def))
								  {
								  case BIT_NOT_EXPR:
								    {
								      tree o80 = gimple_assign_rhs1 (def);
								      o80 = do_valueize (valueize, o80);
								      if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									{
									  {
/* #line 1065 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[4] ATTRIBUTE_UNUSED = { op0, o40, o20, op1 };
									    if (gimple_simplify_272 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								      break;
								    }
								  default:;
								  }
							    }
							  break;
						        default:;
						        }
						    }
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  if ((o70 == o20 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o20, 0) && types_match (o70, o20)))
								    {
								      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
									{
									  {
/* #line 1065 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									    tree captures[4] ATTRIBUTE_UNUSED = { op0, o40, o20, op1 };
									    if (gimple_simplify_272 (res_op, seq, valueize, type, captures))
									      return true;
									  }
								        }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
				    {
				      {
/* #line 1003 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o41, op0 };
					if (gimple_simplify_245 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || (operand_equal_p (o41, o20, 0) && types_match (o41, o20)))
				    {
				      {
/* #line 1003 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[3] ATTRIBUTE_UNUSED = { o20, o40, op0 };
					if (gimple_simplify_245 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
							{
							  {
/* #line 1055 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o30, o31 };
							    if (gimple_simplify_267 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  {
/* #line 1078 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
						    if (gimple_simplify_130 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 1078 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_130 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o40 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o40, 0) && types_match (o60, o40)))
						    {
						      if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
							{
							  {
/* #line 1060 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
							    if (gimple_simplify_214 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
							{
							  {
/* #line 1060 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
							    if (gimple_simplify_214 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
							{
							  {
/* #line 1060 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
							    if (gimple_simplify_214 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_IOR_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      if ((o61 == o40 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o40, 0) && types_match (o61, o40)))
							{
							  {
/* #line 1060 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							    tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
							    if (gimple_simplify_214 (res_op, seq, valueize, type, captures))
							      return true;
							  }
						        }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 1119 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o21 };
			if (gimple_simplify_289 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1119 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op0, o21, o20 };
			if (gimple_simplify_289 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  switch (TREE_CODE (o50))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o50))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_NOT_EXPR:
							        {
								  tree o60 = gimple_assign_rhs1 (def);
								  o60 = do_valueize (valueize, o60);
								  {
/* #line 1078 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[2] ATTRIBUTE_UNUSED = { o30, o60 };
								    if (gimple_simplify_130 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case BIT_NOT_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  {
/* #line 1078 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[2] ATTRIBUTE_UNUSED = { o30, o50 };
						    if (gimple_simplify_130 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_XOR_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 1119 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o30, op0 };
			if (gimple_simplify_289 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1119 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { op1, o31, op0 };
			if (gimple_simplify_289 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_XOR_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_IOR_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if (tree_swap_operands_p (o70, o71))
								    std::swap (o70, o71);
								  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o30, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o71, o30 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
									  return true;
								      }
								    }
								  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o30, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o31, o70, o30 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
									  return true;
								      }
								    }
								  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || operand_equal_p (o70, o31, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o71, o31 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
									  return true;
								      }
								    }
								  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || operand_equal_p (o71, o31, 0))
								    {
								      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o31, o30, o70, o31 };
									if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
									  return true;
								      }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o31, 0))
						    {
						      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
							if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || operand_equal_p (o60, o30, 0))
						    {
						      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
							if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  if ((op1 == o31 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o31, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o30, o31, o31 };
					if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o30, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o30, o30 };
					if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  switch (TREE_CODE (o40))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o40))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  tree o51 = gimple_assign_rhs2 (def);
						  o51 = do_valueize (valueize, o51);
						  if (tree_swap_operands_p (o50, o51))
						    std::swap (o50, o51);
						  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
						    {
						      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { op1, o50, o51, o20 };
							if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
						  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
						    {
						      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { op1, o51, o50, o20 };
							if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      case BIT_AND_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o41 == o20 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, o20, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, o20 };
					if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, o20, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, o20 };
					if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_IOR_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, o20 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o20, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o50, o20 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o51, o21 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || operand_equal_p (o51, o21, 0))
				    {
				      {
/* #line 1131 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { o21, o20, o50, o21 };
					if (gimple_simplify_235 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  if (tree_swap_operands_p (o40, o41))
				    std::swap (o40, o41);
				  if ((o41 == op0 && ! TREE_SIDE_EFFECTS (o41)) || operand_equal_p (o41, op0, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op1, o40, o41, op0 };
					if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || operand_equal_p (o40, op0, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op1, o41, o40, op0 };
					if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o21, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
					if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || operand_equal_p (o50, o20, 0))
				    {
				      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
					if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  switch (TREE_CODE (o50))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o50))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o20 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o20, 0) && types_match (o60, o20)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o61 };
							if (gimple_simplify_100 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
						  if ((o61 == o20 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o20, 0) && types_match (o61, o20)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, o50, o60 };
							if (gimple_simplify_100 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
						  if ((o60 == o21 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o21, 0) && types_match (o60, o21)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o61 };
							if (gimple_simplify_100 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
						  if ((o61 == o21 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o21, 0) && types_match (o61, o21)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, o50, o60 };
							if (gimple_simplify_100 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o21, 0))
		    {
		      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, o21, o21 };
			if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || operand_equal_p (op1, o20, 0))
		    {
		      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o21, o20, o20 };
			if (gimple_simplify_118 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o51 };
					if (gimple_simplify_4 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1, op1, o50 };
					if (gimple_simplify_4 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o51 };
					if (gimple_simplify_4 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op0, o21, o20, op1, op1, o50 };
					if (gimple_simplify_4 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || operand_equal_p (o31, op0, 0))
		    {
		      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o30, o31, op0 };
			if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || operand_equal_p (o30, op0, 0))
		    {
		      {
/* #line 1141 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op1, o31, o30, op0 };
			if (gimple_simplify_300 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (op1))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, op1))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  switch (TREE_CODE (o60))
						    {
						    case SSA_NAME:
						      if (gimple *def_stmt = get_def (valueize, o60))
						        {
							  if (gassign *def = dyn_cast <gassign *> (def_stmt))
							    switch (gimple_assign_rhs_code (def))
							      {
							      case BIT_AND_EXPR:
							        {
								  tree o70 = gimple_assign_rhs1 (def);
								  o70 = do_valueize (valueize, o70);
								  tree o71 = gimple_assign_rhs2 (def);
								  o71 = do_valueize (valueize, o71);
								  if (tree_swap_operands_p (o70, o71))
								    std::swap (o70, o71);
								  if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
								    {
								      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o71 };
									if (gimple_simplify_136 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
									  return true;
								      }
								    }
								  if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
								    {
								      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, o60, o70 };
									if (gimple_simplify_136 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
									  return true;
								      }
								    }
								  if ((o70 == o31 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o31, 0) && types_match (o70, o31)))
								    {
								      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o71 };
									if (gimple_simplify_136 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
									  return true;
								      }
								    }
								  if ((o71 == o31 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o31, 0) && types_match (o71, o31)))
								    {
								      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, o60, o70 };
									if (gimple_simplify_136 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
									  return true;
								      }
								    }
							          break;
							        }
							      default:;
							      }
						        }
						      break;
						    default:;
						    }
					          break;
					        }
					      case BIT_AND_EXPR:
					        {
						  tree o60 = gimple_assign_rhs1 (def);
						  o60 = do_valueize (valueize, o60);
						  tree o61 = gimple_assign_rhs2 (def);
						  o61 = do_valueize (valueize, o61);
						  if (tree_swap_operands_p (o60, o61))
						    std::swap (o60, o61);
						  if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o61 };
							if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
						  if ((o61 == o30 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o30, 0) && types_match (o61, o30)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1, op1, o60 };
							if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
						  if ((o60 == o31 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o31, 0) && types_match (o60, o31)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o61 };
							if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
						  if ((o61 == o31 && ! TREE_SIDE_EFFECTS (o61)) || (operand_equal_p (o61, o31, 0) && types_match (o61, o31)))
						    {
						      {
/* #line 1151 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o31, o30, op1, op1, o60 };
							if (gimple_simplify_54 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
							  return true;
						      }
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 1262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_323 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  {
/* #line 1262 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		    if (gimple_simplify_323 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
		      return true;
		  }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 1289 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_202 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
			  return true;
		      }
		    }
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 1289 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_202 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
				    {
				      {
/* #line 1294 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[2] ATTRIBUTE_UNUSED = { o30, o21 };
					if (gimple_simplify_9 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  if ((op1 == o40 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o40, 0) && types_match (op1, o40)))
				    {
				      {
/* #line 1294 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[2] ATTRIBUTE_UNUSED = { o40, o20 };
					if (gimple_simplify_9 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (o21))
		  {
		    if (CONSTANT_CLASS_P (op1))
		      {
			{
/* #line 1299 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			  gimple_seq *lseq = seq;
			  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 1299, __FILE__, __LINE__);
			  res_op->set_op (BIT_IOR_EXPR, type, 2);
			  {
			    tree ops1[2], res;
			    ops1[0] = captures[0];
			    ops1[1] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			    gimple_resimplify2 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    res_op->ops[0] = res;
			  }
			  {
			    tree ops1[2], res;
			    ops1[0] = captures[1];
			    ops1[1] = captures[2];
			    gimple_match_op tem_op (res_op->cond.any_else (), BIT_AND_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
			    gimple_resimplify2 (lseq, &tem_op, valueize);
			    res = maybe_push_res_to_seq (&tem_op, lseq);
			    if (!res) return false;
			    res_op->ops[1] = res;
			  }
			  gimple_resimplify2 (lseq, res_op, valueize);
			  return true;
			}
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_IOR_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 1289 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
			if (gimple_simplify_202 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
			  return true;
		      }
		    }
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 1289 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
			if (gimple_simplify_202 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
			  return true;
		      }
		    }
		  switch (TREE_CODE (o30))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o30))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
				    {
				      {
/* #line 1294 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[2] ATTRIBUTE_UNUSED = { op0, o31 };
					if (gimple_simplify_9 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o31))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o31))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  if ((o50 == op0 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, op0, 0) && types_match (o50, op0)))
				    {
				      {
/* #line 1294 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[2] ATTRIBUTE_UNUSED = { op0, o30 };
					if (gimple_simplify_9 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, BIT_IOR_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if (CONSTANT_CLASS_P (o21))
		    {
		      if (CONSTANT_CLASS_P (op1))
			{
			  {
/* #line 1305 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
			    if (gimple_simplify_205 (res_op, seq, valueize, type, captures, BIT_AND_EXPR))
			      return true;
			  }
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  {
    tree op1_pops[1];
    if (gimple_logical_inverted_value (op1, op1_pops, valueize))
      {
	tree o30 = op1_pops[0];
	if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
	  {
	    {
/* #line 1349 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	      if (gimple_simplify_11 (res_op, seq, valueize, type, captures))
	        return true;
	    }
	  }
}
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case INTEGER_CST:
		      {
			{
/* #line 1803 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
			  if (gimple_simplify_314 (res_op, seq, valueize, type, captures))
			    return true;
			}
		        break;
		      }
		    default:;
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case LSHIFT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  switch (TREE_CODE (o31))
						    {
						    case INTEGER_CST:
						      {
							switch (TREE_CODE (op1))
							  {
							  case INTEGER_CST:
							    {
							      {
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31, op1 };
								if (gimple_simplify_160 (res_op, seq, valueize, type, captures, LSHIFT_EXPR))
								  return true;
							      }
							      break;
							    }
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o30, o31, op1 };
						if (gimple_simplify_319 (res_op, seq, valueize, type, captures, LSHIFT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case RSHIFT_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o30))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o30))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o40 = gimple_assign_rhs1 (def);
						  o40 = do_valueize (valueize, o40);
						  switch (TREE_CODE (o31))
						    {
						    case INTEGER_CST:
						      {
							switch (TREE_CODE (op1))
							  {
							  case INTEGER_CST:
							    {
							      {
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o40, o31, op1 };
								if (gimple_simplify_160 (res_op, seq, valueize, type, captures, RSHIFT_EXPR))
								  return true;
							      }
							      break;
							    }
						          default:;
						          }
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o30, o31, op1 };
						if (gimple_simplify_319 (res_op, seq, valueize, type, captures, RSHIFT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_logical_inverted_value (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
	{
	  {
/* #line 1349 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    tree captures[1] ATTRIBUTE_UNUSED = { o20 };
	    if (gimple_simplify_11 (res_op, seq, valueize, type, captures))
	      return true;
	  }
        }
}
}
  switch (TREE_CODE (op1))
    {
    case INTEGER_CST:
      {
	{
/* #line 1803 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_314 (res_op, seq, valueize, type, captures))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LSHIFT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21, op1 };
						if (gimple_simplify_217 (res_op, seq, valueize, type, captures, LSHIFT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o20, o21, op1 };
				if (gimple_simplify_42 (res_op, seq, valueize, type, captures, LSHIFT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case RSHIFT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o30, o21, op1 };
						if (gimple_simplify_217 (res_op, seq, valueize, type, captures, RSHIFT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2447 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[6] ATTRIBUTE_UNUSED = { op0, op0, o20, o20, o21, op1 };
				if (gimple_simplify_42 (res_op, seq, valueize, type, captures, RSHIFT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case ORDERED_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((o21 == o20 && ! TREE_SIDE_EFFECTS (o21)) || (operand_equal_p (o21, o20, 0) && types_match (o21, o20)))
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case ORDERED_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      if ((o51 == o50 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o50, 0) && types_match (o51, o50)))
					{
					  {
/* #line 3614 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o50 };
/* #line 3614 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (types_match (captures[0], captures[1]))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3615, __FILE__, __LINE__);
						res_op->set_op (ORDERED_EXPR, type, 2);
						res_op->ops[0] = captures[0];
						res_op->ops[1] = captures[1];
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				        }
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  {
/* #line 3621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o51 };
					    if (gimple_simplify_25 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
					{
					  {
/* #line 3621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
					    if (gimple_simplify_25 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case ORDERED_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
					{
					  {
/* #line 3621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
					    if (gimple_simplify_129 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3621 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[3] ATTRIBUTE_UNUSED = { o21, op0, o20 };
					    if (gimple_simplify_129 (res_op, seq, valueize, type, captures))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case GE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case GT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR))
					      return true;
					  }
				        }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      case EQ_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, LT_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case LT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case GT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case LE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      case GE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case EQ_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case EQ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case GT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, EQ_EXPR, GT_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case LT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, LT_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case NE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, NE_EXPR, EQ_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case GE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case LT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, LT_EXPR, GE_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case GE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      case LE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GE_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LE_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case GT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case LT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, LT_EXPR, GT_EXPR))
					      return true;
					  }
				        }
				    }
				  if ((o51 == o20 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o20, 0) && types_match (o51, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
				  if ((o50 == o21 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o21, 0) && types_match (o50, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      case LE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, LE_EXPR, GT_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case EQ_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if (tree_swap_operands_p (o50, o51))
				    std::swap (o50, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
					{
					  {
/* #line 3637 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
					    if (gimple_simplify_27 (res_op, seq, valueize, type, captures, EQ_EXPR, GT_EXPR))
					      return true;
					  }
				        }
				    }
			          break;
			        }
			      case GT_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  tree o51 = gimple_assign_rhs2 (def);
				  o51 = do_valueize (valueize, o51);
				  if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o21, op1, o51 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, GT_EXPR, MAX_EXPR))
					  return true;
				      }
				    }
				  if ((o51 == o21 && ! TREE_SIDE_EFFECTS (o51)) || (operand_equal_p (o51, o21, 0) && types_match (o51, o21)))
				    {
				      {
/* #line 4900 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o21, o20, op1, o50 };
					if (gimple_simplify_110 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, LT_EXPR, MIN_EXPR))
					  return true;
				      }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o21))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  switch (TREE_CODE (op1))
						    {
						    case INTEGER_CST:
						      {
							{
/* #line 4867 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							  tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50, op1 };
							  if (gimple_simplify_93 (res_op, seq, valueize, type, captures, MINUS_EXPR))
							    return true;
							}
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case SSA_NAME:
				      if (gimple *def_stmt = get_def (valueize, o21))
				        {
					  if (gassign *def = dyn_cast <gassign *> (def_stmt))
					    switch (gimple_assign_rhs_code (def))
					      {
					      CASE_CONVERT:
					        {
						  tree o50 = gimple_assign_rhs1 (def);
						  o50 = do_valueize (valueize, o50);
						  switch (TREE_CODE (op1))
						    {
						    case INTEGER_CST:
						      {
							{
/* #line 4867 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							  tree captures[6] ATTRIBUTE_UNUSED = { op0, o20, o30, o21, o50, op1 };
							  if (gimple_simplify_93 (res_op, seq, valueize, type, captures, PLUS_EXPR))
							    return true;
							}
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
				        }
				      break;
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_MIN_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MAX_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 2184 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_284 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 2184 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_284 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MAX_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 2184 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
			if (gimple_simplify_284 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 2184 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 };
			if (gimple_simplify_284 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 2199 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_262 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 2199 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_262 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  {
/* #line 2206 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 2206 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (INTEGRAL_TYPE_P (type) && TYPE_MIN_VALUE (type) && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2209, __FILE__, __LINE__);
	tree tem;
	tem = captures[1];
	res_op->set_value (tem);
	return true;
      }
    else
      {
/* #line 2210 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (INTEGRAL_TYPE_P (type) && TYPE_MAX_VALUE (type) && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2213, __FILE__, __LINE__);
	    tree tem;
	    tem = captures[0];
	    res_op->set_value (tem);
	    return true;
	  }
      }
  }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      switch (TREE_CODE (o31))
		        {
			case INTEGER_CST:
			  {
			    {
/* #line 2239 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
/* #line 2239 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
				{
/* #line 2240 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (tree_int_cst_sgn (captures[2]) > 0)
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2241, __FILE__, __LINE__);
				      tree tem;
				      tem = captures[0];
				      res_op->set_value (tem);
				      return true;
				    }
				  else
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2242, __FILE__, __LINE__);
				      tree tem;
				      tem = captures[1];
				      res_op->set_value (tem);
				      return true;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 2239 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
/* #line 2239 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
				{
/* #line 2240 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (tree_int_cst_sgn (captures[2]) > 0)
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2241, __FILE__, __LINE__);
				      tree tem;
				      tem = captures[0];
				      res_op->set_value (tem);
				      return true;
				    }
				  else
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2242, __FILE__, __LINE__);
				      tree tem;
				      tem = captures[1];
				      res_op->set_value (tem);
				      return true;
				    }
				}
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), MAX_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2290 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_23 (res_op, seq, valueize, type, captures, MIN_EXPR, MAX_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_MAX_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MIN_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
		    {
		      {
/* #line 2188 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
			if (gimple_simplify_39 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 2188 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o21, o20 };
			if (gimple_simplify_39 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case MIN_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o31 == op0 && ! TREE_SIDE_EFFECTS (o31)) || (operand_equal_p (o31, op0, 0) && types_match (o31, op0)))
		    {
		      {
/* #line 2188 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o30, op0 };
			if (gimple_simplify_39 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 2188 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[2] ATTRIBUTE_UNUSED = { o31, op0 };
			if (gimple_simplify_39 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 2192 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { op0 };
			if (gimple_simplify_111 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
		    {
		      {
/* #line 2192 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[1] ATTRIBUTE_UNUSED = { o20 };
			if (gimple_simplify_111 (res_op, seq, valueize, type, captures))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  {
/* #line 2217 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 2217 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (INTEGRAL_TYPE_P (type) && TYPE_MAX_VALUE (type) && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST))
      {
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2220, __FILE__, __LINE__);
	tree tem;
	tem = captures[1];
	res_op->set_value (tem);
	return true;
      }
    else
      {
/* #line 2221 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (INTEGRAL_TYPE_P (type) && TYPE_MIN_VALUE (type) && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2224, __FILE__, __LINE__);
	    tree tem;
	    tem = captures[0];
	    res_op->set_value (tem);
	    return true;
	  }
      }
  }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      switch (TREE_CODE (o31))
		        {
			case INTEGER_CST:
			  {
			    {
/* #line 2230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o31 };
/* #line 2230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
				{
/* #line 2231 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (tree_int_cst_sgn (captures[2]) > 0)
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2232, __FILE__, __LINE__);
				      tree tem;
				      tem = captures[1];
				      res_op->set_value (tem);
				      return true;
				    }
				  else
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2233, __FILE__, __LINE__);
				      tree tem;
				      tem = captures[0];
				      res_op->set_value (tem);
				      return true;
				    }
				}
			    }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case PLUS_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    {
/* #line 2230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[3] ATTRIBUTE_UNUSED = { o20, op0, o21 };
/* #line 2230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0])))
				{
/* #line 2231 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (tree_int_cst_sgn (captures[2]) > 0)
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2232, __FILE__, __LINE__);
				      tree tem;
				      tem = captures[1];
				      res_op->set_value (tem);
				      return true;
				    }
				  else
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2233, __FILE__, __LINE__);
				      tree tem;
				      tem = captures[0];
				      res_op->set_value (tem);
				      return true;
				    }
				}
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), MIN_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_NOT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_NOT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2290 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
				    if (gimple_simplify_23 (res_op, seq, valueize, type, captures, MAX_EXPR, MIN_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMINF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMIN (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMIN))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMIN))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMIN))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAX, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMINL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINL))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINL))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINL))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXL, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMINF16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF16))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF16))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF16))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF16, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMINF32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF32, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMINF64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF64, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMINF128 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF128, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMINF32X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32X))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF32X))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF32X, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMINF64X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64X))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF64X))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF64X, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMINF128X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128X))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMINF128X))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMAXF128X, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_FMIN (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_FMIN))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_FMIN))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_140 (res_op, seq, valueize, type, captures, CFN_FMIN))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_FMAX, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAXF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAX (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAX))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAX))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAX))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMIN, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAXL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXL))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXL))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXL))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINL, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAXF16 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF16))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF16))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF16))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF16, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAXF32 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF32, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAXF64 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF64, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAXF128 (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF128, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAXF32X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32X))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF32X))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF32X, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAXF64X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64X))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF64X))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF64X, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAXF128X (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128X))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128X))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAXF128X))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_BUILT_IN_FMINF128X, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_FMAX (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 2180 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_183 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_FMAX))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 2260 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op1, op0 };
	  if (gimple_simplify_189 (res_op, seq, valueize, type, captures, CFN_FMAX))
	    return true;
	}
        break;
      }
    default:;
    }
  {
/* #line 2268 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
    if (gimple_simplify_44 (res_op, seq, valueize, type, captures, CFN_FMAX))
      return true;
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[4] ATTRIBUTE_UNUSED = { op0, o20, op1, o40 };
/* #line 2280 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (FLOAT_TYPE_P (TREE_TYPE (captures[1])) || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))))
				      {
					gimple_seq *lseq = seq;
					if (lseq
					    && (!single_use (captures[0])
					        || !single_use (captures[2])))
					  lseq = NULL;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2283, __FILE__, __LINE__);
					res_op->set_op (NEGATE_EXPR, type, 1);
					{
					  tree ops1[2], res;
					  ops1[0] = captures[1];
					  ops1[1] = captures[3];
					  gimple_match_op tem_op (res_op->cond.any_else (), CFN_FMIN, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
					  gimple_resimplify2 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[0] = res;
					}
					gimple_resimplify1 (lseq, res_op, valueize);
					return true;
				      }
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_LROTATE_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_all_onesp (op0))
    {
      {
/* #line 2333 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_193 (res_op, seq, valueize, type, captures, LROTATE_EXPR))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 2359 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_50 (res_op, seq, valueize, type, captures, LROTATE_EXPR))
	  return true;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 2362 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_87 (res_op, seq, valueize, type, captures, LROTATE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CONSTRUCTOR:
	        {
		  {
/* #line 2368 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (gimple_simplify_12 (res_op, seq, valueize, type, captures, LROTATE_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case VECTOR_CST:
      {
	{
/* #line 2368 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_127 (res_op, seq, valueize, type, captures, LROTATE_EXPR))
	    return true;
	}
        break;
      }
    case INTEGER_CST:
      {
	{
/* #line 2391 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2391, __FILE__, __LINE__);
	  res_op->set_op (RROTATE_EXPR, type, 2);
	  res_op->ops[0] = captures[0];
	  res_op->ops[1] =  const_binop (MINUS_EXPR, TREE_TYPE (captures[1]), build_int_cst (TREE_TYPE (captures[1]), element_precision (type)), captures[1]);
	  gimple_resimplify2 (lseq, res_op, valueize);
	  return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LROTATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2399 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_109 (res_op, seq, valueize, type, captures, LROTATE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_RROTATE_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (integer_all_onesp (op0))
    {
      {
/* #line 2333 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_193 (res_op, seq, valueize, type, captures, RROTATE_EXPR))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 2359 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_50 (res_op, seq, valueize, type, captures, RROTATE_EXPR))
	  return true;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 2362 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_87 (res_op, seq, valueize, type, captures, RROTATE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CONSTRUCTOR:
	        {
		  {
/* #line 2368 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (gimple_simplify_12 (res_op, seq, valueize, type, captures, RROTATE_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case VECTOR_CST:
      {
	{
/* #line 2368 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_127 (res_op, seq, valueize, type, captures, RROTATE_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case RROTATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2399 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_109 (res_op, seq, valueize, type, captures, RROTATE_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_RSHIFT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LSHIFT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			if ((op1 == o21 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o21, 0) && types_match (op1, o21)))
			  {
			    {
/* #line 2352 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, o21 };
/* #line 2352 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (TYPE_UNSIGNED (type) && (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type))))
				{
				  gimple_seq *lseq = seq;
				  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2354, __FILE__, __LINE__);
				  res_op->set_op (BIT_AND_EXPR, type, 2);
				  res_op->ops[0] = captures[0];
				  {
				    tree ops1[2], res;
				    ops1[0] =  build_minus_one_cst (type);
				    ops1[1] = captures[1];
				    gimple_match_op tem_op (res_op->cond.any_else (), RSHIFT_EXPR, TREE_TYPE (ops1[0]), ops1[0], ops1[1]);
				    gimple_resimplify2 (lseq, &tem_op, valueize);
				    res = maybe_push_res_to_seq (&tem_op, lseq);
				    if (!res) return false;
				    res_op->ops[1] = res;
				  }
				  gimple_resimplify2 (lseq, res_op, valueize);
				  return true;
				}
			    }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
if (integer_all_onesp (op0))
  {
    {
/* #line 2338 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 2338 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
      if (!TYPE_UNSIGNED (type) && tree_expr_nonnegative_p (captures[1]))
	{
	  gimple_seq *lseq = seq;
	  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2340, __FILE__, __LINE__);
	  tree tem;
	  tem = captures[0];
	  res_op->set_value (tem);
	  return true;
	}
    }
  }
  if (integer_zerop (op1))
    {
      {
/* #line 2359 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_50 (res_op, seq, valueize, type, captures, RSHIFT_EXPR))
	  return true;
      }
    }
  if (integer_zerop (op0))
    {
      {
/* #line 2362 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_87 (res_op, seq, valueize, type, captures, RSHIFT_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CONSTRUCTOR:
	        {
		  {
/* #line 2368 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
		    if (gimple_simplify_12 (res_op, seq, valueize, type, captures, RSHIFT_EXPR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
	{
	  {
/* #line 2378 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	    if (gimple_simplify_15 (res_op, seq, valueize, type, captures, RSHIFT_EXPR))
	      return true;
	  }
	}
      break;
    case VECTOR_CST:
      {
	{
/* #line 2368 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_127 (res_op, seq, valueize, type, captures, RSHIFT_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case RSHIFT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2399 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op1 };
				if (gimple_simplify_109 (res_op, seq, valueize, type, captures, RSHIFT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      CASE_CONVERT:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
						if (gimple_simplify_293 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, RSHIFT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_XOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
						if (gimple_simplify_293 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, RSHIFT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      case BIT_IOR_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[5] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, op1 };
						if (gimple_simplify_293 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, RSHIFT_EXPR))
						  return true;
					      }
					      break;
					    }
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
				if (gimple_simplify_280 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, RSHIFT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
				if (gimple_simplify_280 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, RSHIFT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case INTEGER_CST:
			    {
			      {
/* #line 2534 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[5] ATTRIBUTE_UNUSED = { op0, op0, o20, o21, op1 };
				if (gimple_simplify_280 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, RSHIFT_EXPR))
				  return true;
			      }
			      break;
			    }
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_COMPLEX_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case REALPART_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case IMAGPART_EXPR:
				    {
				      tree o40 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
				      if ((TREE_CODE (o40) == SSA_NAME
				           || is_gimple_min_invariant (o40)))
				        {
					  o40 = do_valueize (valueize, o40);
					  if ((o40 == o20 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, o20, 0) && types_match (o40, o20)))
					    {
					      {
/* #line 2814 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						tree captures[1] ATTRIBUTE_UNUSED = { o20 };
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2814, __FILE__, __LINE__);
						tree tem;
						tem = captures[0];
						res_op->set_value (tem);
						return true;
					      }
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_UNLE_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3240 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_166 (res_op, seq, valueize, type, captures, UNLE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, UNLE_EXPR, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, UNLE_EXPR, UNGE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, UNLE_EXPR, UNGE_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_5 (res_op, seq, valueize, type, captures, UNLE_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_UNGE_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3240 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_166 (res_op, seq, valueize, type, captures, UNGE_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, UNGE_EXPR, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, UNGE_EXPR, UNLE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, UNGE_EXPR, UNLE_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_5 (res_op, seq, valueize, type, captures, UNGE_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_UNEQ_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3240 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_166 (res_op, seq, valueize, type, captures, UNEQ_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, UNEQ_EXPR, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, UNEQ_EXPR, UNEQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, UNEQ_EXPR, UNEQ_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_5 (res_op, seq, valueize, type, captures, UNEQ_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_UNLT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3244 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_19 (res_op, seq, valueize, type, captures, UNLT_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, UNLT_EXPR, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, UNLT_EXPR, UNGT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, UNLT_EXPR, UNGT_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_5 (res_op, seq, valueize, type, captures, UNLT_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_UNGT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3244 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
	if (gimple_simplify_19 (res_op, seq, valueize, type, captures, UNGT_EXPR))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, UNGT_EXPR, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, UNGT_EXPR, UNLT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, UNGT_EXPR, UNLT_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_5 (res_op, seq, valueize, type, captures, UNGT_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_LTGT_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if ((op1 == op0 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, op0, 0) && types_match (op1, op0)))
    {
      {
/* #line 3247 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[1] ATTRIBUTE_UNUSED = { op0 };
/* #line 3247 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (!flag_trapping_math)
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3248, __FILE__, __LINE__);
	    tree tem;
	    tem =  constant_boolean_node (false, type);
	    res_op->set_value (tem);
	    return true;
	  }
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, LTGT_EXPR, NE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, LTGT_EXPR, LTGT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, LTGT_EXPR, LTGT_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_5 (res_op, seq, valueize, type, captures, LTGT_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_UNORDERED_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, UNORDERED_EXPR, UNORDERED_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, UNORDERED_EXPR, UNORDERED_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, UNORDERED_EXPR, UNORDERED_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_5 (res_op, seq, valueize, type, captures, UNORDERED_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_ORDERED_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case FLOAT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case FLOAT_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3481 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { op0, o20, o40 };
				    if (gimple_simplify_90 (res_op, seq, valueize, type, captures, ORDERED_EXPR, ORDERED_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  switch (TREE_CODE (op1))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op1))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  {
/* #line 3674 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[2] ATTRIBUTE_UNUSED = { o20, o40 };
				    if (gimple_simplify_123 (res_op, seq, valueize, type, captures, ORDERED_EXPR, ORDERED_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		if (CONSTANT_CLASS_P (op1))
		  {
		    {
/* #line 3680 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
		      if (gimple_simplify_244 (res_op, seq, valueize, type, captures, ORDERED_EXPR, ORDERED_EXPR))
		        return true;
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case REAL_CST:
      {
	{
/* #line 4098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	  if (gimple_simplify_5 (res_op, seq, valueize, type, captures, ORDERED_EXPR))
	    return true;
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LDEXPF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (real_zerop (op0))
    {
      {
/* #line 4500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_281 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_147 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4509, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LDEXP (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (real_zerop (op0))
    {
      {
/* #line 4500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_281 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_147 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4509, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_LDEXPL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (real_zerop (op0))
    {
      {
/* #line 4500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_281 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_147 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4509, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_LDEXP (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (real_zerop (op0))
    {
      {
/* #line 4500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_281 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_147 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4509, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SCALBNF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (real_zerop (op0))
    {
      {
/* #line 4500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_281 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_147 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4509, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SCALBN (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (real_zerop (op0))
    {
      {
/* #line 4500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_281 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_147 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4509, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SCALBNL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (real_zerop (op0))
    {
      {
/* #line 4500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_281 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_147 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4509, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SCALBLNF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (real_zerop (op0))
    {
      {
/* #line 4500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_281 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_147 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4509, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SCALBLN (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (real_zerop (op0))
    {
      {
/* #line 4500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_281 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_147 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4509, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_SCALBLNL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  if (real_zerop (op0))
    {
      {
/* #line 4500 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_281 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  if (integer_zerop (op1))
    {
      {
/* #line 4504 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	if (gimple_simplify_147 (res_op, seq, valueize, type, captures))
	  return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case REAL_CST:
      {
	{
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4508 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (!real_isfinite (TREE_REAL_CST_PTR (captures[0])))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4509, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[0];
	      res_op->set_value (tem);
	      return true;
	    }
	}
        break;
      }
    default:;
    }
  return false;
}

static bool
gimple_simplify_TRUTH_ORIF_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									  {
									    if ((o81 == o31 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o31, 0) && types_match (o81, o31)))
									      {
										if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o21 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o21, 0) && types_match (o90, o21)))
									      {
										if ((o91 == o31 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o31, 0) && types_match (o91, o31)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									  {
									    if ((o81 == o31 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o31, 0) && types_match (o81, o31)))
									      {
										if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o21 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o21, 0) && types_match (o90, o21)))
									      {
										if ((o91 == o31 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o31, 0) && types_match (o91, o31)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case GE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									  {
									    if ((o81 == o41 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o41, 0) && types_match (o81, o41)))
									      {
										if ((o71 == o40 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o40, 0) && types_match (o71, o40)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o20 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o20, 0) && types_match (o90, o20)))
									      {
										if ((o91 == o41 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o41, 0) && types_match (o91, o41)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case GT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									  {
									    if ((o81 == o41 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o41, 0) && types_match (o81, o41)))
									      {
										if ((o71 == o40 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o40, 0) && types_match (o71, o40)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o20 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o20, 0) && types_match (o90, o20)))
									      {
										if ((o91 == o41 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o41, 0) && types_match (o91, o41)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_TRUTH_OR_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case LE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									  {
									    if ((o81 == o31 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o31, 0) && types_match (o81, o31)))
									      {
										if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o21 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o21, 0) && types_match (o90, o21)))
									      {
										if ((o91 == o31 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o31, 0) && types_match (o91, o31)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  switch (TREE_CODE (o31))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o21 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o21, 0) && types_match (o80, o21)))
									  {
									    if ((o81 == o31 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o31, 0) && types_match (o81, o31)))
									      {
										if ((o71 == o30 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o30, 0) && types_match (o71, o30)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o70 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o30 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o30, 0) && types_match (o70, o30)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o21 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o21, 0) && types_match (o90, o21)))
									      {
										if ((o91 == o31 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o31, 0) && types_match (o91, o31)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o20, o30, o31, o21, op1, o71 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case GE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									  {
									    if ((o81 == o41 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o41, 0) && types_match (o81, o41)))
									      {
										if ((o71 == o40 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o40, 0) && types_match (o71, o40)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GE_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o20 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o20, 0) && types_match (o90, o20)))
									      {
										if ((o91 == o41 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o41, 0) && types_match (o91, o41)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
										      const enum tree_code cmp = LE_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case GT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  switch (TREE_CODE (o21))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o21))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case POINTER_PLUS_EXPR:
			        {
				  tree o40 = gimple_assign_rhs1 (def);
				  o40 = do_valueize (valueize, o40);
				  tree o41 = gimple_assign_rhs2 (def);
				  o41 = do_valueize (valueize, o41);
				  switch (TREE_CODE (o41))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case LT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							switch (TREE_CODE (o70))
							  {
							  case SSA_NAME:
							    if (gimple *def_stmt = get_def (valueize, o70))
							      {
								if (gassign *def = dyn_cast <gassign *> (def_stmt))
								  switch (gimple_assign_rhs_code (def))
								    {
								    case POINTER_PLUS_EXPR:
								      {
									tree o80 = gimple_assign_rhs1 (def);
									o80 = do_valueize (valueize, o80);
									tree o81 = gimple_assign_rhs2 (def);
									o81 = do_valueize (valueize, o81);
									if ((o80 == o20 && ! TREE_SIDE_EFFECTS (o80)) || (operand_equal_p (o80, o20, 0) && types_match (o80, o20)))
									  {
									    if ((o81 == o41 && ! TREE_SIDE_EFFECTS (o81)) || (operand_equal_p (o81, o41, 0) && types_match (o81, o41)))
									      {
										if ((o71 == o40 && ! TREE_SIDE_EFFECTS (o71)) || (operand_equal_p (o71, o40, 0) && types_match (o71, o40)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o70 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									  }
								        break;
								      }
								    default:;
								    }
							      }
							    break;
						          default:;
						          }
						        break;
						      }
						    case GT_EXPR:
						      {
							tree o70 = gimple_assign_rhs1 (def);
							o70 = do_valueize (valueize, o70);
							tree o71 = gimple_assign_rhs2 (def);
							o71 = do_valueize (valueize, o71);
							if ((o70 == o40 && ! TREE_SIDE_EFFECTS (o70)) || (operand_equal_p (o70, o40, 0) && types_match (o70, o40)))
							  {
							    switch (TREE_CODE (o71))
							      {
							      case SSA_NAME:
							        if (gimple *def_stmt = get_def (valueize, o71))
							          {
								    if (gassign *def = dyn_cast <gassign *> (def_stmt))
								      switch (gimple_assign_rhs_code (def))
									{
									case POINTER_PLUS_EXPR:
									  {
									    tree o90 = gimple_assign_rhs1 (def);
									    o90 = do_valueize (valueize, o90);
									    tree o91 = gimple_assign_rhs2 (def);
									    o91 = do_valueize (valueize, o91);
									    if ((o90 == o20 && ! TREE_SIDE_EFFECTS (o90)) || (operand_equal_p (o90, o20, 0) && types_match (o90, o20)))
									      {
										if ((o91 == o41 && ! TREE_SIDE_EFFECTS (o91)) || (operand_equal_p (o91, o41, 0) && types_match (o91, o41)))
										  {
										    {
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      tree captures[7] ATTRIBUTE_UNUSED = { op0, o21, o40, o41, o20, op1, o71 };
										      const enum tree_code cmp = LT_EXPR;
/* #line 5291 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
										      if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2])) && TYPE_OVERFLOW_WRAPS (sizetype) && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype))
											{
											  {
/* #line 5295 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
 offset_int rhs = off * 2;
/* #line 5298 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
											      if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype))
												{
												  {
/* #line 5302 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
 tree rhs_tree = wide_int_to_tree (sizetype, rhs);
/* #line 5304 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
												      if (cmp == LT_EXPR)
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5305, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      ops2[0] =  swap_p ? captures[6] : captures[1];
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												      else
													{
													  gimple_seq *lseq = seq;
													  if (lseq
													      && (!single_use (captures[0])
													          || !single_use (captures[5])))
													    lseq = NULL;
													  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5309, __FILE__, __LINE__);
													  res_op->set_op (GT_EXPR, type, 2);
													  {
													    tree ops1[1], res;
													    {
													      tree ops2[2], res;
													      {
														tree ops3[2], res;
														ops3[0] =  swap_p ? captures[4] : captures[2];
														ops3[1] =  wide_int_to_tree (sizetype, off);
														gimple_match_op tem_op (res_op->cond.any_else (), POINTER_PLUS_EXPR, TREE_TYPE (ops3[0]), ops3[0], ops3[1]);
														gimple_resimplify2 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
														ops2[0] = res;
													      }
													      ops2[1] =  swap_p ? captures[2] : captures[4];
													      gimple_match_op tem_op (res_op->cond.any_else (), POINTER_DIFF_EXPR, ssizetype, ops2[0], ops2[1]);
													      gimple_resimplify2 (lseq, &tem_op, valueize);
													      res = maybe_push_res_to_seq (&tem_op, lseq);
													      if (!res) return false;
													      ops1[0] = res;
													    }
													    if (sizetype != TREE_TYPE (ops1[0])
													        && !useless_type_conversion_p (sizetype, TREE_TYPE (ops1[0])))
													      {
														gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, sizetype, ops1[0]);
														gimple_resimplify1 (lseq, &tem_op, valueize);
														res = maybe_push_res_to_seq (&tem_op, lseq);
														if (!res) return false;
													      }
													    else
													      res = ops1[0];
													    res_op->ops[0] = res;
													  }
													  res_op->ops[1] =  rhs_tree;
													  gimple_resimplify2 (lseq, res_op, valueize);
													  return true;
													}
												  }
												}
											  }
											}
										    }
										  }
									      }
									    break;
									  }
									default:;
									}
							          }
							        break;
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper code, const tree type, tree op0, tree op1)
{
  switch (code.get_rep())
    {
    case PLUS_EXPR:
      return gimple_simplify_PLUS_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case POINTER_PLUS_EXPR:
      return gimple_simplify_POINTER_PLUS_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case MINUS_EXPR:
      return gimple_simplify_MINUS_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case BIT_IOR_EXPR:
      return gimple_simplify_BIT_IOR_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case BIT_XOR_EXPR:
      return gimple_simplify_BIT_XOR_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case POINTER_DIFF_EXPR:
      return gimple_simplify_POINTER_DIFF_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case MULT_EXPR:
      return gimple_simplify_MULT_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_COPYSIGNF:
      return gimple_simplify_CFN_BUILT_IN_COPYSIGNF (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_COPYSIGN:
      return gimple_simplify_CFN_BUILT_IN_COPYSIGN (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_COPYSIGNL:
      return gimple_simplify_CFN_BUILT_IN_COPYSIGNL (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_COPYSIGNF16:
      return gimple_simplify_CFN_BUILT_IN_COPYSIGNF16 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_COPYSIGNF32:
      return gimple_simplify_CFN_BUILT_IN_COPYSIGNF32 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_COPYSIGNF64:
      return gimple_simplify_CFN_BUILT_IN_COPYSIGNF64 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_COPYSIGNF128:
      return gimple_simplify_CFN_BUILT_IN_COPYSIGNF128 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_COPYSIGNF32X:
      return gimple_simplify_CFN_BUILT_IN_COPYSIGNF32X (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_COPYSIGNF64X:
      return gimple_simplify_CFN_BUILT_IN_COPYSIGNF64X (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_COPYSIGNF128X:
      return gimple_simplify_CFN_BUILT_IN_COPYSIGNF128X (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_COPYSIGN:
      return gimple_simplify_CFN_COPYSIGN (res_op, seq, valueize, code, type, op0, op1);
    case TRUNC_DIV_EXPR:
      return gimple_simplify_TRUNC_DIV_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case CEIL_DIV_EXPR:
      return gimple_simplify_CEIL_DIV_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case FLOOR_DIV_EXPR:
      return gimple_simplify_FLOOR_DIV_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case ROUND_DIV_EXPR:
      return gimple_simplify_ROUND_DIV_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case EXACT_DIV_EXPR:
      return gimple_simplify_EXACT_DIV_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case RDIV_EXPR:
      return gimple_simplify_RDIV_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case LT_EXPR:
      return gimple_simplify_LT_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case LE_EXPR:
      return gimple_simplify_LE_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case GT_EXPR:
      return gimple_simplify_GT_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case GE_EXPR:
      return gimple_simplify_GE_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case CEIL_MOD_EXPR:
      return gimple_simplify_CEIL_MOD_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case FLOOR_MOD_EXPR:
      return gimple_simplify_FLOOR_MOD_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case ROUND_MOD_EXPR:
      return gimple_simplify_ROUND_MOD_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case TRUNC_MOD_EXPR:
      return gimple_simplify_TRUNC_MOD_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case EQ_EXPR:
      return gimple_simplify_EQ_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case NE_EXPR:
      return gimple_simplify_NE_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_POWF:
      return gimple_simplify_CFN_BUILT_IN_POWF (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_POW:
      return gimple_simplify_CFN_BUILT_IN_POW (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_POWL:
      return gimple_simplify_CFN_BUILT_IN_POWL (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_POW:
      return gimple_simplify_CFN_POW (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_POWIF:
      return gimple_simplify_CFN_BUILT_IN_POWIF (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_POWI:
      return gimple_simplify_CFN_BUILT_IN_POWI (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_POWIL:
      return gimple_simplify_CFN_BUILT_IN_POWIL (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_HYPOTF:
      return gimple_simplify_CFN_BUILT_IN_HYPOTF (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_HYPOT:
      return gimple_simplify_CFN_BUILT_IN_HYPOT (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_HYPOTL:
      return gimple_simplify_CFN_BUILT_IN_HYPOTL (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_HYPOT:
      return gimple_simplify_CFN_HYPOT (res_op, seq, valueize, code, type, op0, op1);
    case LSHIFT_EXPR:
      return gimple_simplify_LSHIFT_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case BIT_AND_EXPR:
      return gimple_simplify_BIT_AND_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case MIN_EXPR:
      return gimple_simplify_MIN_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case MAX_EXPR:
      return gimple_simplify_MAX_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMINF:
      return gimple_simplify_CFN_BUILT_IN_FMINF (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMIN:
      return gimple_simplify_CFN_BUILT_IN_FMIN (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMINL:
      return gimple_simplify_CFN_BUILT_IN_FMINL (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMINF16:
      return gimple_simplify_CFN_BUILT_IN_FMINF16 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMINF32:
      return gimple_simplify_CFN_BUILT_IN_FMINF32 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMINF64:
      return gimple_simplify_CFN_BUILT_IN_FMINF64 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMINF128:
      return gimple_simplify_CFN_BUILT_IN_FMINF128 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMINF32X:
      return gimple_simplify_CFN_BUILT_IN_FMINF32X (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMINF64X:
      return gimple_simplify_CFN_BUILT_IN_FMINF64X (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMINF128X:
      return gimple_simplify_CFN_BUILT_IN_FMINF128X (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_FMIN:
      return gimple_simplify_CFN_FMIN (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMAXF:
      return gimple_simplify_CFN_BUILT_IN_FMAXF (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMAX:
      return gimple_simplify_CFN_BUILT_IN_FMAX (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMAXL:
      return gimple_simplify_CFN_BUILT_IN_FMAXL (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMAXF16:
      return gimple_simplify_CFN_BUILT_IN_FMAXF16 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMAXF32:
      return gimple_simplify_CFN_BUILT_IN_FMAXF32 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMAXF64:
      return gimple_simplify_CFN_BUILT_IN_FMAXF64 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMAXF128:
      return gimple_simplify_CFN_BUILT_IN_FMAXF128 (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMAXF32X:
      return gimple_simplify_CFN_BUILT_IN_FMAXF32X (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMAXF64X:
      return gimple_simplify_CFN_BUILT_IN_FMAXF64X (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_FMAXF128X:
      return gimple_simplify_CFN_BUILT_IN_FMAXF128X (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_FMAX:
      return gimple_simplify_CFN_FMAX (res_op, seq, valueize, code, type, op0, op1);
    case LROTATE_EXPR:
      return gimple_simplify_LROTATE_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case RROTATE_EXPR:
      return gimple_simplify_RROTATE_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case RSHIFT_EXPR:
      return gimple_simplify_RSHIFT_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case COMPLEX_EXPR:
      return gimple_simplify_COMPLEX_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case UNLE_EXPR:
      return gimple_simplify_UNLE_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case UNGE_EXPR:
      return gimple_simplify_UNGE_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case UNEQ_EXPR:
      return gimple_simplify_UNEQ_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case UNLT_EXPR:
      return gimple_simplify_UNLT_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case UNGT_EXPR:
      return gimple_simplify_UNGT_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case LTGT_EXPR:
      return gimple_simplify_LTGT_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case UNORDERED_EXPR:
      return gimple_simplify_UNORDERED_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case ORDERED_EXPR:
      return gimple_simplify_ORDERED_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_LDEXPF:
      return gimple_simplify_CFN_BUILT_IN_LDEXPF (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_LDEXP:
      return gimple_simplify_CFN_BUILT_IN_LDEXP (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_LDEXPL:
      return gimple_simplify_CFN_BUILT_IN_LDEXPL (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_LDEXP:
      return gimple_simplify_CFN_LDEXP (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_SCALBNF:
      return gimple_simplify_CFN_BUILT_IN_SCALBNF (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_SCALBN:
      return gimple_simplify_CFN_BUILT_IN_SCALBN (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_SCALBNL:
      return gimple_simplify_CFN_BUILT_IN_SCALBNL (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_SCALBLNF:
      return gimple_simplify_CFN_BUILT_IN_SCALBLNF (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_SCALBLN:
      return gimple_simplify_CFN_BUILT_IN_SCALBLN (res_op, seq, valueize, code, type, op0, op1);
    case -CFN_BUILT_IN_SCALBLNL:
      return gimple_simplify_CFN_BUILT_IN_SCALBLNL (res_op, seq, valueize, code, type, op0, op1);
    case TRUTH_ORIF_EXPR:
      return gimple_simplify_TRUTH_ORIF_EXPR (res_op, seq, valueize, code, type, op0, op1);
    case TRUTH_OR_EXPR:
      return gimple_simplify_TRUTH_OR_EXPR (res_op, seq, valueize, code, type, op0, op1);
    default:;
    }
  return false;
}

static bool
gimple_simplify_COND_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case GT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (real_zerop (o21))
		    {
		      if (real_onep (op1))
			{
			  if (real_minus_onep (op2))
			    {
			      {
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				  {
/* #line 226 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (types_match (type, float_type_node))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 227, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
					res_op->ops[0] = captures[1];
					{
					  tree ops1[1], res;
					  ops1[0] = captures[0];
					  if (type != TREE_TYPE (ops1[0])
					      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					    {
					      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					    }
					  else
					    res = ops1[0];
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 228 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (types_match (type, double_type_node))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 229, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					    res_op->ops[0] = captures[1];
					    {
					      tree ops1[1], res;
					      ops1[0] = captures[0];
					      if (type != TREE_TYPE (ops1[0])
					          && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						{
						  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
					        }
					      else
					        res = ops1[0];
					      res_op->ops[1] = res;
					    }
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (types_match (type, long_double_type_node))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 231, __FILE__, __LINE__);
						res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
						res_op->ops[0] = captures[1];
						{
						  tree ops1[1], res;
						  ops1[0] = captures[0];
						  if (type != TREE_TYPE (ops1[0])
						      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						    {
						      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						      gimple_resimplify1 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						    }
						  else
						    res = ops1[0];
						  res_op->ops[1] = res;
						}
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			    }
		        }
		      if (real_minus_onep (op1))
			{
			  if (real_onep (op2))
			    {
			      {
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				  {
/* #line 241 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (types_match (type, float_type_node))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 242, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
					res_op->ops[0] = captures[1];
					{
					  tree ops1[1], res;
					  ops1[0] = captures[0];
					  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 243 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (types_match (type, double_type_node))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 244, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					    res_op->ops[0] = captures[1];
					    {
					      tree ops1[1], res;
					      ops1[0] = captures[0];
					      gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[1] = res;
					    }
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 245 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (types_match (type, long_double_type_node))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 246, __FILE__, __LINE__);
						res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
						res_op->ops[0] = captures[1];
						{
						  tree ops1[1], res;
						  ops1[0] = captures[0];
						  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
						  res_op->ops[1] = res;
						}
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			    }
		        }
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (op2))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
								    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GT_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					  {
					    switch (TREE_CODE (op2))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
						    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GT_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
					  }
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case PLUS_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  switch (TREE_CODE (op2))
								    {
								    case INTEGER_CST:
								      {
									{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									  tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR))
									    return true;
									}
								        break;
								      }
								    default:;
								    }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    case MINUS_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  switch (TREE_CODE (op2))
								    {
								    case INTEGER_CST:
								      {
									{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									  tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR))
									    return true;
									}
								        break;
								      }
								    default:;
								    }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (op2))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
						    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GT_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    switch (TREE_CODE (op2))
			      {
			      case INTEGER_CST:
			        {
				  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
			  }
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case PLUS_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (o51))
					      {
					      case INTEGER_CST:
					        {
						  switch (TREE_CODE (op2))
						    {
						    case INTEGER_CST:
						      {
							{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							  tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR))
							    return true;
							}
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    case MINUS_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (o51))
					      {
					      case INTEGER_CST:
					        {
						  switch (TREE_CODE (op2))
						    {
						    case INTEGER_CST:
						      {
							{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							  tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR))
							    return true;
							}
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case GE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (real_zerop (o21))
		    {
		      if (real_onep (op1))
			{
			  if (real_minus_onep (op2))
			    {
			      {
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				  {
/* #line 226 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (types_match (type, float_type_node))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 227, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
					res_op->ops[0] = captures[1];
					{
					  tree ops1[1], res;
					  ops1[0] = captures[0];
					  if (type != TREE_TYPE (ops1[0])
					      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					    {
					      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					    }
					  else
					    res = ops1[0];
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 228 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (types_match (type, double_type_node))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 229, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					    res_op->ops[0] = captures[1];
					    {
					      tree ops1[1], res;
					      ops1[0] = captures[0];
					      if (type != TREE_TYPE (ops1[0])
					          && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						{
						  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
					        }
					      else
					        res = ops1[0];
					      res_op->ops[1] = res;
					    }
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (types_match (type, long_double_type_node))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 231, __FILE__, __LINE__);
						res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
						res_op->ops[0] = captures[1];
						{
						  tree ops1[1], res;
						  ops1[0] = captures[0];
						  if (type != TREE_TYPE (ops1[0])
						      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						    {
						      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						      gimple_resimplify1 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						    }
						  else
						    res = ops1[0];
						  res_op->ops[1] = res;
						}
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			    }
		        }
		      if (real_minus_onep (op1))
			{
			  if (real_onep (op2))
			    {
			      {
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				  {
/* #line 241 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (types_match (type, float_type_node))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 242, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
					res_op->ops[0] = captures[1];
					{
					  tree ops1[1], res;
					  ops1[0] = captures[0];
					  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 243 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (types_match (type, double_type_node))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 244, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					    res_op->ops[0] = captures[1];
					    {
					      tree ops1[1], res;
					      ops1[0] = captures[0];
					      gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[1] = res;
					    }
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 245 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (types_match (type, long_double_type_node))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 246, __FILE__, __LINE__);
						res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
						res_op->ops[0] = captures[1];
						{
						  tree ops1[1], res;
						  ops1[0] = captures[0];
						  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
						  res_op->ops[1] = res;
						}
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			    }
		        }
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (op2))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
								    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GE_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					  {
					    switch (TREE_CODE (op2))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
						    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GE_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
					  }
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case PLUS_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  switch (TREE_CODE (op2))
								    {
								    case INTEGER_CST:
								      {
									{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									  tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR))
									    return true;
									}
								        break;
								      }
								    default:;
								    }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    case MINUS_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  switch (TREE_CODE (op2))
								    {
								    case INTEGER_CST:
								      {
									{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									  tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GE_EXPR, MINUS_EXPR))
									    return true;
									}
								        break;
								      }
								    default:;
								    }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (op2))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
						    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GE_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    switch (TREE_CODE (op2))
			      {
			      case INTEGER_CST:
			        {
				  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
			  }
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case PLUS_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (o51))
					      {
					      case INTEGER_CST:
					        {
						  switch (TREE_CODE (op2))
						    {
						    case INTEGER_CST:
						      {
							{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							  tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR))
							    return true;
							}
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    case MINUS_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (o51))
					      {
					      case INTEGER_CST:
					        {
						  switch (TREE_CODE (op2))
						    {
						    case INTEGER_CST:
						      {
							{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							  tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GE_EXPR, MINUS_EXPR))
							    return true;
							}
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case LT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (real_zerop (o21))
		    {
		      if (real_onep (op1))
			{
			  if (real_minus_onep (op2))
			    {
			      {
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				  {
/* #line 226 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (types_match (type, float_type_node))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 227, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
					res_op->ops[0] = captures[1];
					{
					  tree ops1[1], res;
					  ops1[0] = captures[0];
					  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 228 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (types_match (type, double_type_node))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 229, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					    res_op->ops[0] = captures[1];
					    {
					      tree ops1[1], res;
					      ops1[0] = captures[0];
					      gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[1] = res;
					    }
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (types_match (type, long_double_type_node))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 231, __FILE__, __LINE__);
						res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
						res_op->ops[0] = captures[1];
						{
						  tree ops1[1], res;
						  ops1[0] = captures[0];
						  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
						  res_op->ops[1] = res;
						}
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			    }
		        }
		      if (real_minus_onep (op1))
			{
			  if (real_onep (op2))
			    {
			      {
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				  {
/* #line 241 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (types_match (type, float_type_node))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 242, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
					res_op->ops[0] = captures[1];
					{
					  tree ops1[1], res;
					  ops1[0] = captures[0];
					  if (type != TREE_TYPE (ops1[0])
					      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					    {
					      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					    }
					  else
					    res = ops1[0];
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 243 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (types_match (type, double_type_node))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 244, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					    res_op->ops[0] = captures[1];
					    {
					      tree ops1[1], res;
					      ops1[0] = captures[0];
					      if (type != TREE_TYPE (ops1[0])
					          && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						{
						  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
					        }
					      else
					        res = ops1[0];
					      res_op->ops[1] = res;
					    }
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 245 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (types_match (type, long_double_type_node))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 246, __FILE__, __LINE__);
						res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
						res_op->ops[0] = captures[1];
						{
						  tree ops1[1], res;
						  ops1[0] = captures[0];
						  if (type != TREE_TYPE (ops1[0])
						      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						    {
						      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						      gimple_resimplify1 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						    }
						  else
						    res = ops1[0];
						  res_op->ops[1] = res;
						}
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			    }
		        }
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (op2))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
								    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LT_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					  {
					    switch (TREE_CODE (op2))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
						    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LT_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
					  }
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case PLUS_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  switch (TREE_CODE (op2))
								    {
								    case INTEGER_CST:
								      {
									{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									  tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR))
									    return true;
									}
								        break;
								      }
								    default:;
								    }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    case MINUS_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  switch (TREE_CODE (op2))
								    {
								    case INTEGER_CST:
								      {
									{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									  tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR))
									    return true;
									}
								        break;
								      }
								    default:;
								    }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (op2))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
						    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LT_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    switch (TREE_CODE (op2))
			      {
			      case INTEGER_CST:
			        {
				  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LT_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
			  }
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case PLUS_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (o51))
					      {
					      case INTEGER_CST:
					        {
						  switch (TREE_CODE (op2))
						    {
						    case INTEGER_CST:
						      {
							{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							  tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR))
							    return true;
							}
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    case MINUS_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (o51))
					      {
					      case INTEGER_CST:
					        {
						  switch (TREE_CODE (op2))
						    {
						    case INTEGER_CST:
						      {
							{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							  tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR))
							    return true;
							}
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case LE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (real_zerop (o21))
		    {
		      if (real_onep (op1))
			{
			  if (real_minus_onep (op2))
			    {
			      {
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				  {
/* #line 226 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (types_match (type, float_type_node))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 227, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
					res_op->ops[0] = captures[1];
					{
					  tree ops1[1], res;
					  ops1[0] = captures[0];
					  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					  gimple_resimplify1 (lseq, &tem_op, valueize);
					  res = maybe_push_res_to_seq (&tem_op, lseq);
					  if (!res) return false;
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 228 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (types_match (type, double_type_node))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 229, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					    res_op->ops[0] = captures[1];
					    {
					      tree ops1[1], res;
					      ops1[0] = captures[0];
					      gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					      res_op->ops[1] = res;
					    }
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (types_match (type, long_double_type_node))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 231, __FILE__, __LINE__);
						res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
						res_op->ops[0] = captures[1];
						{
						  tree ops1[1], res;
						  ops1[0] = captures[0];
						  gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
						  res_op->ops[1] = res;
						}
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			    }
		        }
		      if (real_minus_onep (op1))
			{
			  if (real_onep (op2))
			    {
			      {
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				  {
/* #line 241 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (types_match (type, float_type_node))
				      {
					gimple_seq *lseq = seq;
					if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 242, __FILE__, __LINE__);
					res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
					res_op->ops[0] = captures[1];
					{
					  tree ops1[1], res;
					  ops1[0] = captures[0];
					  if (type != TREE_TYPE (ops1[0])
					      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					    {
					      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
					      gimple_resimplify1 (lseq, &tem_op, valueize);
					      res = maybe_push_res_to_seq (&tem_op, lseq);
					      if (!res) return false;
					    }
					  else
					    res = ops1[0];
					  res_op->ops[1] = res;
					}
					gimple_resimplify2 (lseq, res_op, valueize);
					return true;
				      }
				    else
				      {
/* #line 243 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (types_match (type, double_type_node))
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 244, __FILE__, __LINE__);
					    res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					    res_op->ops[0] = captures[1];
					    {
					      tree ops1[1], res;
					      ops1[0] = captures[0];
					      if (type != TREE_TYPE (ops1[0])
					          && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						{
						  gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						  gimple_resimplify1 (lseq, &tem_op, valueize);
						  res = maybe_push_res_to_seq (&tem_op, lseq);
						  if (!res) return false;
					        }
					      else
					        res = ops1[0];
					      res_op->ops[1] = res;
					    }
					    gimple_resimplify2 (lseq, res_op, valueize);
					    return true;
					  }
					else
					  {
/* #line 245 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (types_match (type, long_double_type_node))
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 246, __FILE__, __LINE__);
						res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
						res_op->ops[0] = captures[1];
						{
						  tree ops1[1], res;
						  ops1[0] = captures[0];
						  if (type != TREE_TYPE (ops1[0])
						      && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						    {
						      gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						      gimple_resimplify1 (lseq, &tem_op, valueize);
						      res = maybe_push_res_to_seq (&tem_op, lseq);
						      if (!res) return false;
						    }
						  else
						    res = ops1[0];
						  res_op->ops[1] = res;
						}
						gimple_resimplify2 (lseq, res_op, valueize);
						return true;
					      }
					  }
				      }
				  }
			      }
			    }
		        }
		    }
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (op2))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
								    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LE_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					  {
					    switch (TREE_CODE (op2))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
						    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LE_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
					  }
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    case PLUS_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if (tree_swap_operands_p (o60, o61))
							  std::swap (o60, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  switch (TREE_CODE (op2))
								    {
								    case INTEGER_CST:
								      {
									{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									  tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR))
									    return true;
									}
								        break;
								      }
								    default:;
								    }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    case MINUS_EXPR:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							tree o61 = gimple_assign_rhs2 (def);
							o61 = do_valueize (valueize, o61);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (o61))
							      {
							      case INTEGER_CST:
							        {
								  switch (TREE_CODE (op2))
								    {
								    case INTEGER_CST:
								      {
									{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									  tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LE_EXPR, MINUS_EXPR))
									    return true;
									}
								        break;
								      }
								    default:;
								    }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (op2))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
						    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LE_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    switch (TREE_CODE (op2))
			      {
			      case INTEGER_CST:
			        {
				  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LE_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
			  }
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    case PLUS_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if (tree_swap_operands_p (o50, o51))
					  std::swap (o50, o51);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (o51))
					      {
					      case INTEGER_CST:
					        {
						  switch (TREE_CODE (op2))
						    {
						    case INTEGER_CST:
						      {
							{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							  tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR))
							    return true;
							}
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    case MINUS_EXPR:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					tree o51 = gimple_assign_rhs2 (def);
					o51 = do_valueize (valueize, o51);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (o51))
					      {
					      case INTEGER_CST:
					        {
						  switch (TREE_CODE (op2))
						    {
						    case INTEGER_CST:
						      {
							{
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							  tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							  if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LE_EXPR, MINUS_EXPR))
							    return true;
							}
						        break;
						      }
						    default:;
						    }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      case EQ_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      CASE_CONVERT:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  switch (TREE_CODE (o21))
				    {
				    case INTEGER_CST:
				      {
					switch (TREE_CODE (op1))
					  {
					  case SSA_NAME:
					    if (gimple *def_stmt = get_def (valueize, op1))
					      {
						if (gassign *def = dyn_cast <gassign *> (def_stmt))
						  switch (gimple_assign_rhs_code (def))
						    {
						    CASE_CONVERT:
						      {
							tree o60 = gimple_assign_rhs1 (def);
							o60 = do_valueize (valueize, o60);
							if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							  {
							    switch (TREE_CODE (op2))
							      {
							      case INTEGER_CST:
							        {
								  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								    tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
								    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, EQ_EXPR))
								      return true;
								  }
							          break;
							        }
							      default:;
							      }
							  }
						        break;
						      }
						    default:;
						    }
					      }
					    break;
				          default:;
				          }
					if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					  {
					    switch (TREE_CODE (op2))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
						    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, EQ_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
		  switch (TREE_CODE (o21))
		    {
		    case INTEGER_CST:
		      {
			switch (TREE_CODE (op1))
			  {
			  case SSA_NAME:
			    if (gimple *def_stmt = get_def (valueize, op1))
			      {
				if (gassign *def = dyn_cast <gassign *> (def_stmt))
				  switch (gimple_assign_rhs_code (def))
				    {
				    CASE_CONVERT:
				      {
					tree o50 = gimple_assign_rhs1 (def);
					o50 = do_valueize (valueize, o50);
					if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					  {
					    switch (TREE_CODE (op2))
					      {
					      case INTEGER_CST:
					        {
						  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
						    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, EQ_EXPR))
						      return true;
						  }
					          break;
					        }
					      default:;
					      }
					  }
				        break;
				      }
				    default:;
				    }
			      }
			    break;
		          default:;
		          }
			if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			  {
			    switch (TREE_CODE (op2))
			      {
			      case INTEGER_CST:
			        {
				  {
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				    if (gimple_simplify_146 (res_op, seq, valueize, type, captures, EQ_EXPR))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
			  }
		        break;
		      }
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case GT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((TREE_CODE (o20) == SSA_NAME
	     || is_gimple_min_invariant (o20)))
	  {
	    o20 = do_valueize (valueize, o20);
	    tree o21 = TREE_OPERAND (op0, 1);
	    if ((TREE_CODE (o21) == SSA_NAME
	         || is_gimple_min_invariant (o21)))
	      {
		o21 = do_valueize (valueize, o21);
		if (real_zerop (o21))
		  {
		    if (real_onep (op1))
		      {
			if (real_minus_onep (op2))
			  {
			    {
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				{
/* #line 226 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (types_match (type, float_type_node))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 227, __FILE__, __LINE__);
				      res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
				      res_op->ops[0] = captures[1];
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					if (type != TREE_TYPE (ops1[0])
					    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					  {
					    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
					    gimple_resimplify1 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					  }
					else
					  res = ops1[0];
					res_op->ops[1] = res;
				      }
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
/* #line 228 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (types_match (type, double_type_node))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 229, __FILE__, __LINE__);
					  res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					  res_op->ops[0] = captures[1];
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[0];
					    if (type != TREE_TYPE (ops1[0])
					        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops1[0];
					    res_op->ops[1] = res;
					  }
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (types_match (type, long_double_type_node))
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 231, __FILE__, __LINE__);
					      res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
					      res_op->ops[0] = captures[1];
					      {
						tree ops1[1], res;
						ops1[0] = captures[0];
						if (type != TREE_TYPE (ops1[0])
						    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						  {
						    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						  }
						else
						  res = ops1[0];
						res_op->ops[1] = res;
					      }
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					}
				    }
				}
			    }
			  }
		      }
		    if (real_minus_onep (op1))
		      {
			if (real_onep (op2))
			  {
			    {
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				{
/* #line 241 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (types_match (type, float_type_node))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 242, __FILE__, __LINE__);
				      res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
				      res_op->ops[0] = captures[1];
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					res_op->ops[1] = res;
				      }
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
/* #line 243 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (types_match (type, double_type_node))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 244, __FILE__, __LINE__);
					  res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					  res_op->ops[0] = captures[1];
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[0];
					    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					    gimple_resimplify1 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    res_op->ops[1] = res;
					  }
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 245 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (types_match (type, long_double_type_node))
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 246, __FILE__, __LINE__);
					      res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
					      res_op->ops[0] = captures[1];
					      {
						tree ops1[1], res;
						ops1[0] = captures[0];
						gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
						res_op->ops[1] = res;
					      }
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					}
				    }
				}
			    }
			  }
		      }
		  }
		switch (TREE_CODE (o20))
		  {
		  case SSA_NAME:
		    if (gimple *def_stmt = get_def (valueize, o20))
		      {
			if (gassign *def = dyn_cast <gassign *> (def_stmt))
			  switch (gimple_assign_rhs_code (def))
			    {
			    CASE_CONVERT:
			      {
				tree o30 = gimple_assign_rhs1 (def);
				o30 = do_valueize (valueize, o30);
				switch (TREE_CODE (o21))
				  {
				  case INTEGER_CST:
				    {
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (op2))
							    {
							    case INTEGER_CST:
							      {
								{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								  tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
								  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GT_EXPR))
								    return true;
								}
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					{
					  switch (TREE_CODE (op2))
					    {
					    case INTEGER_CST:
					      {
						{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
						  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GT_EXPR))
						    return true;
						}
					        break;
					      }
					    default:;
					    }
				        }
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case PLUS_EXPR:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      tree o61 = gimple_assign_rhs2 (def);
						      o61 = do_valueize (valueize, o61);
						      if (tree_swap_operands_p (o60, o61))
						        std::swap (o60, o61);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (o61))
							    {
							    case INTEGER_CST:
							      {
								switch (TREE_CODE (op2))
								  {
								  case INTEGER_CST:
								    {
								      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR))
									  return true;
								      }
								      break;
								    }
							          default:;
							          }
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  case MINUS_EXPR:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      tree o61 = gimple_assign_rhs2 (def);
						      o61 = do_valueize (valueize, o61);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (o61))
							    {
							    case INTEGER_CST:
							      {
								switch (TREE_CODE (op2))
								  {
								  case INTEGER_CST:
								    {
								      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR))
									  return true;
								      }
								      break;
								    }
							          default:;
							          }
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      break;
				    }
			          default:;
			          }
			        break;
			      }
			    default:;
			    }
		      }
		    break;
	          default:;
	          }
		switch (TREE_CODE (o21))
		  {
		  case INTEGER_CST:
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (op2))
					    {
					    case INTEGER_CST:
					      {
						{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
						  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GT_EXPR))
						    return true;
						}
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			{
			  switch (TREE_CODE (op2))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GT_EXPR))
				    return true;
				}
			        break;
			      }
			    default:;
			    }
		        }
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case PLUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (o51))
					    {
					    case INTEGER_CST:
					      {
						switch (TREE_CODE (op2))
						  {
						  case INTEGER_CST:
						    {
						      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GT_EXPR, PLUS_EXPR))
							  return true;
						      }
						      break;
						    }
					          default:;
					          }
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  case MINUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (o51))
					    {
					    case INTEGER_CST:
					      {
						switch (TREE_CODE (op2))
						  {
						  case INTEGER_CST:
						    {
						      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GT_EXPR, MINUS_EXPR))
							  return true;
						      }
						      break;
						    }
					          default:;
					          }
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      break;
		    }
	          default:;
	          }
	      }
	  }
        break;
      }
    case GE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((TREE_CODE (o20) == SSA_NAME
	     || is_gimple_min_invariant (o20)))
	  {
	    o20 = do_valueize (valueize, o20);
	    tree o21 = TREE_OPERAND (op0, 1);
	    if ((TREE_CODE (o21) == SSA_NAME
	         || is_gimple_min_invariant (o21)))
	      {
		o21 = do_valueize (valueize, o21);
		if (real_zerop (o21))
		  {
		    if (real_onep (op1))
		      {
			if (real_minus_onep (op2))
			  {
			    {
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				{
/* #line 226 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (types_match (type, float_type_node))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 227, __FILE__, __LINE__);
				      res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
				      res_op->ops[0] = captures[1];
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					if (type != TREE_TYPE (ops1[0])
					    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					  {
					    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
					    gimple_resimplify1 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					  }
					else
					  res = ops1[0];
					res_op->ops[1] = res;
				      }
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
/* #line 228 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (types_match (type, double_type_node))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 229, __FILE__, __LINE__);
					  res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					  res_op->ops[0] = captures[1];
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[0];
					    if (type != TREE_TYPE (ops1[0])
					        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops1[0];
					    res_op->ops[1] = res;
					  }
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (types_match (type, long_double_type_node))
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 231, __FILE__, __LINE__);
					      res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
					      res_op->ops[0] = captures[1];
					      {
						tree ops1[1], res;
						ops1[0] = captures[0];
						if (type != TREE_TYPE (ops1[0])
						    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						  {
						    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						  }
						else
						  res = ops1[0];
						res_op->ops[1] = res;
					      }
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					}
				    }
				}
			    }
			  }
		      }
		    if (real_minus_onep (op1))
		      {
			if (real_onep (op2))
			  {
			    {
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				{
/* #line 241 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (types_match (type, float_type_node))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 242, __FILE__, __LINE__);
				      res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
				      res_op->ops[0] = captures[1];
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					res_op->ops[1] = res;
				      }
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
/* #line 243 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (types_match (type, double_type_node))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 244, __FILE__, __LINE__);
					  res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					  res_op->ops[0] = captures[1];
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[0];
					    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					    gimple_resimplify1 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    res_op->ops[1] = res;
					  }
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 245 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (types_match (type, long_double_type_node))
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 246, __FILE__, __LINE__);
					      res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
					      res_op->ops[0] = captures[1];
					      {
						tree ops1[1], res;
						ops1[0] = captures[0];
						gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
						res_op->ops[1] = res;
					      }
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					}
				    }
				}
			    }
			  }
		      }
		  }
		switch (TREE_CODE (o20))
		  {
		  case SSA_NAME:
		    if (gimple *def_stmt = get_def (valueize, o20))
		      {
			if (gassign *def = dyn_cast <gassign *> (def_stmt))
			  switch (gimple_assign_rhs_code (def))
			    {
			    CASE_CONVERT:
			      {
				tree o30 = gimple_assign_rhs1 (def);
				o30 = do_valueize (valueize, o30);
				switch (TREE_CODE (o21))
				  {
				  case INTEGER_CST:
				    {
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (op2))
							    {
							    case INTEGER_CST:
							      {
								{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								  tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
								  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GE_EXPR))
								    return true;
								}
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					{
					  switch (TREE_CODE (op2))
					    {
					    case INTEGER_CST:
					      {
						{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
						  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GE_EXPR))
						    return true;
						}
					        break;
					      }
					    default:;
					    }
				        }
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case PLUS_EXPR:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      tree o61 = gimple_assign_rhs2 (def);
						      o61 = do_valueize (valueize, o61);
						      if (tree_swap_operands_p (o60, o61))
						        std::swap (o60, o61);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (o61))
							    {
							    case INTEGER_CST:
							      {
								switch (TREE_CODE (op2))
								  {
								  case INTEGER_CST:
								    {
								      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR))
									  return true;
								      }
								      break;
								    }
							          default:;
							          }
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  case MINUS_EXPR:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      tree o61 = gimple_assign_rhs2 (def);
						      o61 = do_valueize (valueize, o61);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (o61))
							    {
							    case INTEGER_CST:
							      {
								switch (TREE_CODE (op2))
								  {
								  case INTEGER_CST:
								    {
								      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GE_EXPR, MINUS_EXPR))
									  return true;
								      }
								      break;
								    }
							          default:;
							          }
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      break;
				    }
			          default:;
			          }
			        break;
			      }
			    default:;
			    }
		      }
		    break;
	          default:;
	          }
		switch (TREE_CODE (o21))
		  {
		  case INTEGER_CST:
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (op2))
					    {
					    case INTEGER_CST:
					      {
						{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
						  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GE_EXPR))
						    return true;
						}
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			{
			  switch (TREE_CODE (op2))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, GE_EXPR))
				    return true;
				}
			        break;
			      }
			    default:;
			    }
		        }
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case PLUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (o51))
					    {
					    case INTEGER_CST:
					      {
						switch (TREE_CODE (op2))
						  {
						  case INTEGER_CST:
						    {
						      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GE_EXPR, PLUS_EXPR))
							  return true;
						      }
						      break;
						    }
					          default:;
					          }
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  case MINUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (o51))
					    {
					    case INTEGER_CST:
					      {
						switch (TREE_CODE (op2))
						  {
						  case INTEGER_CST:
						    {
						      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							if (gimple_simplify_171 (res_op, seq, valueize, type, captures, GE_EXPR, MINUS_EXPR))
							  return true;
						      }
						      break;
						    }
					          default:;
					          }
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      break;
		    }
	          default:;
	          }
	      }
	  }
        break;
      }
    case LT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((TREE_CODE (o20) == SSA_NAME
	     || is_gimple_min_invariant (o20)))
	  {
	    o20 = do_valueize (valueize, o20);
	    tree o21 = TREE_OPERAND (op0, 1);
	    if ((TREE_CODE (o21) == SSA_NAME
	         || is_gimple_min_invariant (o21)))
	      {
		o21 = do_valueize (valueize, o21);
		if (real_zerop (o21))
		  {
		    if (real_onep (op1))
		      {
			if (real_minus_onep (op2))
			  {
			    {
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				{
/* #line 226 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (types_match (type, float_type_node))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 227, __FILE__, __LINE__);
				      res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
				      res_op->ops[0] = captures[1];
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					res_op->ops[1] = res;
				      }
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
/* #line 228 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (types_match (type, double_type_node))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 229, __FILE__, __LINE__);
					  res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					  res_op->ops[0] = captures[1];
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[0];
					    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					    gimple_resimplify1 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    res_op->ops[1] = res;
					  }
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (types_match (type, long_double_type_node))
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 231, __FILE__, __LINE__);
					      res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
					      res_op->ops[0] = captures[1];
					      {
						tree ops1[1], res;
						ops1[0] = captures[0];
						gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
						res_op->ops[1] = res;
					      }
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					}
				    }
				}
			    }
			  }
		      }
		    if (real_minus_onep (op1))
		      {
			if (real_onep (op2))
			  {
			    {
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				{
/* #line 241 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (types_match (type, float_type_node))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 242, __FILE__, __LINE__);
				      res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
				      res_op->ops[0] = captures[1];
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					if (type != TREE_TYPE (ops1[0])
					    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					  {
					    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
					    gimple_resimplify1 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					  }
					else
					  res = ops1[0];
					res_op->ops[1] = res;
				      }
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
/* #line 243 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (types_match (type, double_type_node))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 244, __FILE__, __LINE__);
					  res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					  res_op->ops[0] = captures[1];
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[0];
					    if (type != TREE_TYPE (ops1[0])
					        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops1[0];
					    res_op->ops[1] = res;
					  }
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 245 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (types_match (type, long_double_type_node))
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 246, __FILE__, __LINE__);
					      res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
					      res_op->ops[0] = captures[1];
					      {
						tree ops1[1], res;
						ops1[0] = captures[0];
						if (type != TREE_TYPE (ops1[0])
						    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						  {
						    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						  }
						else
						  res = ops1[0];
						res_op->ops[1] = res;
					      }
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					}
				    }
				}
			    }
			  }
		      }
		  }
		switch (TREE_CODE (o20))
		  {
		  case SSA_NAME:
		    if (gimple *def_stmt = get_def (valueize, o20))
		      {
			if (gassign *def = dyn_cast <gassign *> (def_stmt))
			  switch (gimple_assign_rhs_code (def))
			    {
			    CASE_CONVERT:
			      {
				tree o30 = gimple_assign_rhs1 (def);
				o30 = do_valueize (valueize, o30);
				switch (TREE_CODE (o21))
				  {
				  case INTEGER_CST:
				    {
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (op2))
							    {
							    case INTEGER_CST:
							      {
								{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								  tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
								  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LT_EXPR))
								    return true;
								}
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					{
					  switch (TREE_CODE (op2))
					    {
					    case INTEGER_CST:
					      {
						{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
						  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LT_EXPR))
						    return true;
						}
					        break;
					      }
					    default:;
					    }
				        }
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case PLUS_EXPR:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      tree o61 = gimple_assign_rhs2 (def);
						      o61 = do_valueize (valueize, o61);
						      if (tree_swap_operands_p (o60, o61))
						        std::swap (o60, o61);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (o61))
							    {
							    case INTEGER_CST:
							      {
								switch (TREE_CODE (op2))
								  {
								  case INTEGER_CST:
								    {
								      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR))
									  return true;
								      }
								      break;
								    }
							          default:;
							          }
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  case MINUS_EXPR:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      tree o61 = gimple_assign_rhs2 (def);
						      o61 = do_valueize (valueize, o61);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (o61))
							    {
							    case INTEGER_CST:
							      {
								switch (TREE_CODE (op2))
								  {
								  case INTEGER_CST:
								    {
								      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR))
									  return true;
								      }
								      break;
								    }
							          default:;
							          }
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      break;
				    }
			          default:;
			          }
			        break;
			      }
			    default:;
			    }
		      }
		    break;
	          default:;
	          }
		switch (TREE_CODE (o21))
		  {
		  case INTEGER_CST:
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (op2))
					    {
					    case INTEGER_CST:
					      {
						{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
						  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LT_EXPR))
						    return true;
						}
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			{
			  switch (TREE_CODE (op2))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LT_EXPR))
				    return true;
				}
			        break;
			      }
			    default:;
			    }
		        }
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case PLUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (o51))
					    {
					    case INTEGER_CST:
					      {
						switch (TREE_CODE (op2))
						  {
						  case INTEGER_CST:
						    {
						      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LT_EXPR, PLUS_EXPR))
							  return true;
						      }
						      break;
						    }
					          default:;
					          }
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  case MINUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (o51))
					    {
					    case INTEGER_CST:
					      {
						switch (TREE_CODE (op2))
						  {
						  case INTEGER_CST:
						    {
						      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LT_EXPR, MINUS_EXPR))
							  return true;
						      }
						      break;
						    }
					          default:;
					          }
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      break;
		    }
	          default:;
	          }
	      }
	  }
        break;
      }
    case LE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((TREE_CODE (o20) == SSA_NAME
	     || is_gimple_min_invariant (o20)))
	  {
	    o20 = do_valueize (valueize, o20);
	    tree o21 = TREE_OPERAND (op0, 1);
	    if ((TREE_CODE (o21) == SSA_NAME
	         || is_gimple_min_invariant (o21)))
	      {
		o21 = do_valueize (valueize, o21);
		if (real_zerop (o21))
		  {
		    if (real_onep (op1))
		      {
			if (real_minus_onep (op2))
			  {
			    {
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
/* #line 223 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				{
/* #line 226 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (types_match (type, float_type_node))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 227, __FILE__, __LINE__);
				      res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
				      res_op->ops[0] = captures[1];
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					gimple_resimplify1 (lseq, &tem_op, valueize);
					res = maybe_push_res_to_seq (&tem_op, lseq);
					if (!res) return false;
					res_op->ops[1] = res;
				      }
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
/* #line 228 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (types_match (type, double_type_node))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 229, __FILE__, __LINE__);
					  res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					  res_op->ops[0] = captures[1];
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[0];
					    gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
					    gimple_resimplify1 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					    res_op->ops[1] = res;
					  }
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 230 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (types_match (type, long_double_type_node))
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 231, __FILE__, __LINE__);
					      res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
					      res_op->ops[0] = captures[1];
					      {
						tree ops1[1], res;
						ops1[0] = captures[0];
						gimple_match_op tem_op (res_op->cond.any_else (), NEGATE_EXPR, TREE_TYPE (ops1[0]), ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
						res_op->ops[1] = res;
					      }
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					}
				    }
				}
			    }
			  }
		      }
		    if (real_minus_onep (op1))
		      {
			if (real_onep (op2))
			  {
			    {
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      tree captures[2] ATTRIBUTE_UNUSED = { o20, op2 };
/* #line 238 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			      if (!HONOR_NANS (type) && !HONOR_SIGNED_ZEROS (type) && types_match (type, TREE_TYPE (captures[0])))
				{
/* #line 241 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  if (types_match (type, float_type_node))
				    {
				      gimple_seq *lseq = seq;
				      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 242, __FILE__, __LINE__);
				      res_op->set_op (CFN_BUILT_IN_COPYSIGNF, type, 2);
				      res_op->ops[0] = captures[1];
				      {
					tree ops1[1], res;
					ops1[0] = captures[0];
					if (type != TREE_TYPE (ops1[0])
					    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					  {
					    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
					    gimple_resimplify1 (lseq, &tem_op, valueize);
					    res = maybe_push_res_to_seq (&tem_op, lseq);
					    if (!res) return false;
					  }
					else
					  res = ops1[0];
					res_op->ops[1] = res;
				      }
				      gimple_resimplify2 (lseq, res_op, valueize);
				      return true;
				    }
				  else
				    {
/* #line 243 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				      if (types_match (type, double_type_node))
					{
					  gimple_seq *lseq = seq;
					  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 244, __FILE__, __LINE__);
					  res_op->set_op (CFN_BUILT_IN_COPYSIGN, type, 2);
					  res_op->ops[0] = captures[1];
					  {
					    tree ops1[1], res;
					    ops1[0] = captures[0];
					    if (type != TREE_TYPE (ops1[0])
					        && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
					      {
						gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						gimple_resimplify1 (lseq, &tem_op, valueize);
						res = maybe_push_res_to_seq (&tem_op, lseq);
						if (!res) return false;
					      }
					    else
					      res = ops1[0];
					    res_op->ops[1] = res;
					  }
					  gimple_resimplify2 (lseq, res_op, valueize);
					  return true;
					}
				      else
					{
/* #line 245 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					  if (types_match (type, long_double_type_node))
					    {
					      gimple_seq *lseq = seq;
					      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 246, __FILE__, __LINE__);
					      res_op->set_op (CFN_BUILT_IN_COPYSIGNL, type, 2);
					      res_op->ops[0] = captures[1];
					      {
						tree ops1[1], res;
						ops1[0] = captures[0];
						if (type != TREE_TYPE (ops1[0])
						    && !useless_type_conversion_p (type, TREE_TYPE (ops1[0])))
						  {
						    gimple_match_op tem_op (res_op->cond.any_else (), NOP_EXPR, type, ops1[0]);
						    gimple_resimplify1 (lseq, &tem_op, valueize);
						    res = maybe_push_res_to_seq (&tem_op, lseq);
						    if (!res) return false;
						  }
						else
						  res = ops1[0];
						res_op->ops[1] = res;
					      }
					      gimple_resimplify2 (lseq, res_op, valueize);
					      return true;
					    }
					}
				    }
				}
			    }
			  }
		      }
		  }
		switch (TREE_CODE (o20))
		  {
		  case SSA_NAME:
		    if (gimple *def_stmt = get_def (valueize, o20))
		      {
			if (gassign *def = dyn_cast <gassign *> (def_stmt))
			  switch (gimple_assign_rhs_code (def))
			    {
			    CASE_CONVERT:
			      {
				tree o30 = gimple_assign_rhs1 (def);
				o30 = do_valueize (valueize, o30);
				switch (TREE_CODE (o21))
				  {
				  case INTEGER_CST:
				    {
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (op2))
							    {
							    case INTEGER_CST:
							      {
								{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								  tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
								  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LE_EXPR))
								    return true;
								}
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					{
					  switch (TREE_CODE (op2))
					    {
					    case INTEGER_CST:
					      {
						{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
						  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LE_EXPR))
						    return true;
						}
					        break;
					      }
					    default:;
					    }
				        }
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  case PLUS_EXPR:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      tree o61 = gimple_assign_rhs2 (def);
						      o61 = do_valueize (valueize, o61);
						      if (tree_swap_operands_p (o60, o61))
						        std::swap (o60, o61);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (o61))
							    {
							    case INTEGER_CST:
							      {
								switch (TREE_CODE (op2))
								  {
								  case INTEGER_CST:
								    {
								      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR))
									  return true;
								      }
								      break;
								    }
							          default:;
							          }
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  case MINUS_EXPR:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      tree o61 = gimple_assign_rhs2 (def);
						      o61 = do_valueize (valueize, o61);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (o61))
							    {
							    case INTEGER_CST:
							      {
								switch (TREE_CODE (op2))
								  {
								  case INTEGER_CST:
								    {
								      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
									tree captures[4] ATTRIBUTE_UNUSED = { o30, o21, o61, op2 };
									if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LE_EXPR, MINUS_EXPR))
									  return true;
								      }
								      break;
								    }
							          default:;
							          }
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      break;
				    }
			          default:;
			          }
			        break;
			      }
			    default:;
			    }
		      }
		    break;
	          default:;
	          }
		switch (TREE_CODE (o21))
		  {
		  case INTEGER_CST:
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (op2))
					    {
					    case INTEGER_CST:
					      {
						{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
						  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LE_EXPR))
						    return true;
						}
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			{
			  switch (TREE_CODE (op2))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, LE_EXPR))
				    return true;
				}
			        break;
			      }
			    default:;
			    }
		        }
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case PLUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (o51))
					    {
					    case INTEGER_CST:
					      {
						switch (TREE_CODE (op2))
						  {
						  case INTEGER_CST:
						    {
						      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LE_EXPR, PLUS_EXPR))
							  return true;
						      }
						      break;
						    }
					          default:;
					          }
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  case MINUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (o51))
					    {
					    case INTEGER_CST:
					      {
						switch (TREE_CODE (op2))
						  {
						  case INTEGER_CST:
						    {
						      {
/* #line 2994 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
							tree captures[4] ATTRIBUTE_UNUSED = { o20, o21, o51, op2 };
							if (gimple_simplify_171 (res_op, seq, valueize, type, captures, LE_EXPR, MINUS_EXPR))
							  return true;
						      }
						      break;
						    }
					          default:;
					          }
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      break;
		    }
	          default:;
	          }
	      }
	  }
        break;
      }
    case INTEGER_CST:
      {
	{
/* #line 2880 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
/* #line 2880 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (integer_zerop (captures[0]))
	    {
/* #line 2881 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (!VOID_TYPE_P (TREE_TYPE (captures[2])) || VOID_TYPE_P (type))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2882, __FILE__, __LINE__);
		  tree tem;
		  tem = captures[2];
		  res_op->set_value (tem);
		  return true;
		}
	    }
	  else
	    {
/* #line 2883 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (!VOID_TYPE_P (TREE_TYPE (captures[1])) || VOID_TYPE_P (type))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2884, __FILE__, __LINE__);
		  tree tem;
		  tem = captures[1];
		  res_op->set_value (tem);
		  return true;
		}
	    }
	}
        break;
      }
    case EQ_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((TREE_CODE (o20) == SSA_NAME
	     || is_gimple_min_invariant (o20)))
	  {
	    o20 = do_valueize (valueize, o20);
	    tree o21 = TREE_OPERAND (op0, 1);
	    if ((TREE_CODE (o21) == SSA_NAME
	         || is_gimple_min_invariant (o21)))
	      {
		o21 = do_valueize (valueize, o21);
		if (tree_swap_operands_p (o20, o21))
		  std::swap (o20, o21);
		switch (TREE_CODE (o20))
		  {
		  case SSA_NAME:
		    if (gimple *def_stmt = get_def (valueize, o20))
		      {
			if (gassign *def = dyn_cast <gassign *> (def_stmt))
			  switch (gimple_assign_rhs_code (def))
			    {
			    CASE_CONVERT:
			      {
				tree o30 = gimple_assign_rhs1 (def);
				o30 = do_valueize (valueize, o30);
				switch (TREE_CODE (o21))
				  {
				  case INTEGER_CST:
				    {
				      switch (TREE_CODE (op1))
				        {
					case SSA_NAME:
					  if (gimple *def_stmt = get_def (valueize, op1))
					    {
					      if (gassign *def = dyn_cast <gassign *> (def_stmt))
					        switch (gimple_assign_rhs_code (def))
						  {
						  CASE_CONVERT:
						    {
						      tree o60 = gimple_assign_rhs1 (def);
						      o60 = do_valueize (valueize, o60);
						      if ((o60 == o30 && ! TREE_SIDE_EFFECTS (o60)) || (operand_equal_p (o60, o30, 0) && types_match (o60, o30)))
							{
							  switch (TREE_CODE (op2))
							    {
							    case INTEGER_CST:
							      {
								{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
								  tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
								  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, EQ_EXPR))
								    return true;
								}
							        break;
							      }
							    default:;
							    }
						        }
						      break;
						    }
						  default:;
						  }
					    }
					  break;
				        default:;
				        }
				      if ((op1 == o30 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o30, 0) && types_match (op1, o30)))
					{
					  switch (TREE_CODE (op2))
					    {
					    case INTEGER_CST:
					      {
						{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  tree captures[3] ATTRIBUTE_UNUSED = { o30, o21, op2 };
						  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, EQ_EXPR))
						    return true;
						}
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
			          default:;
			          }
			        break;
			      }
			    default:;
			    }
		      }
		    break;
	          default:;
	          }
		switch (TREE_CODE (o21))
		  {
		  case INTEGER_CST:
		    {
		      switch (TREE_CODE (op1))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, op1))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  CASE_CONVERT:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      if ((o50 == o20 && ! TREE_SIDE_EFFECTS (o50)) || (operand_equal_p (o50, o20, 0) && types_match (o50, o20)))
					{
					  switch (TREE_CODE (op2))
					    {
					    case INTEGER_CST:
					      {
						{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
						  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, EQ_EXPR))
						    return true;
						}
					        break;
					      }
					    default:;
					    }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		      if ((op1 == o20 && ! TREE_SIDE_EFFECTS (op1)) || (operand_equal_p (op1, o20, 0) && types_match (op1, o20)))
			{
			  switch (TREE_CODE (op2))
			    {
			    case INTEGER_CST:
			      {
				{
/* #line 2911 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  tree captures[3] ATTRIBUTE_UNUSED = { o20, o21, op2 };
				  if (gimple_simplify_146 (res_op, seq, valueize, type, captures, EQ_EXPR))
				    return true;
				}
			        break;
			      }
			    default:;
			    }
		        }
		      break;
		    }
	          default:;
	          }
	      }
	  }
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case COND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_assign_rhs3 (def);
		  o32 = do_valueize (valueize, o32);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 3077 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o32, op2 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3077, __FILE__, __LINE__);
			res_op->set_op (COND_EXPR, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[0] = unshare_expr (res_op->ops[0]);
			res_op->ops[1] = captures[1];
			res_op->ops[2] = captures[3];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case COND_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_assign_rhs3 (def);
		  o42 = do_valueize (valueize, o42);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 3080 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o41, o42 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3080, __FILE__, __LINE__);
			res_op->set_op (COND_EXPR, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[0] = unshare_expr (res_op->ops[0]);
			res_op->ops[1] = captures[1];
			res_op->ops[2] = captures[3];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		    }
		  {
/* #line 3088 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42 };
/* #line 3088 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (inverse_conditions_p (captures[0], captures[2]))
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3089, __FILE__, __LINE__);
			res_op->set_op (COND_EXPR, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[0] = unshare_expr (res_op->ops[0]);
			res_op->ops[1] = captures[1];
			res_op->ops[2] = captures[3];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case COND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_assign_rhs3 (def);
		  o32 = do_valueize (valueize, o32);
		  {
/* #line 3092 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o31, o32, op2 };
/* #line 3092 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (inverse_conditions_p (captures[0], captures[1]))
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3093, __FILE__, __LINE__);
			res_op->set_op (COND_EXPR, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[0] = unshare_expr (res_op->ops[0]);
			res_op->ops[1] = captures[3];
			res_op->ops[2] = captures[4];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op2 == op1 && ! TREE_SIDE_EFFECTS (op2)) || (operand_equal_p (op2, op1, 0) && types_match (op2, op1)))
    {
      {
/* #line 3098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3098, __FILE__, __LINE__);
	tree tem;
	tem = captures[1];
	res_op->set_value (tem);
	return true;
      }
    }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (tree_swap_operands_p (o20, o21))
		    std::swap (o20, o21);
		  switch (TREE_CODE (o20))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, o20))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case BIT_AND_EXPR:
			        {
				  tree o30 = gimple_assign_rhs1 (def);
				  o30 = do_valueize (valueize, o30);
				  tree o31 = gimple_assign_rhs2 (def);
				  o31 = do_valueize (valueize, o31);
				  if (tree_swap_operands_p (o30, o31))
				    std::swap (o30, o31);
				  if (integer_pow2p (o31))
				    {
				      if (integer_zerop (o21))
					{
					  switch (TREE_CODE (op1))
					    {
					    case INTEGER_CST:
					      {
						if (integer_zerop (op2))
						  {
						    {
/* #line 3817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						      tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
						      if (gimple_simplify_114 (res_op, seq, valueize, type, captures))
						        return true;
						    }
						  }
					        break;
					      }
					    default:;
					    }
				        }
				    }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      case LT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  if (integer_zerop (o21))
		    {
		      switch (TREE_CODE (op1))
		        {
			case INTEGER_CST:
			  {
			    if (integer_zerop (op2))
			      {
				{
/* #line 3848 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				  tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
				  if (gimple_simplify_104 (res_op, seq, valueize, type, captures))
				    return true;
				}
			      }
			    break;
			  }
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    case NE_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((TREE_CODE (o20) == SSA_NAME
	     || is_gimple_min_invariant (o20)))
	  {
	    o20 = do_valueize (valueize, o20);
	    tree o21 = TREE_OPERAND (op0, 1);
	    if ((TREE_CODE (o21) == SSA_NAME
	         || is_gimple_min_invariant (o21)))
	      {
		o21 = do_valueize (valueize, o21);
		if (tree_swap_operands_p (o20, o21))
		  std::swap (o20, o21);
		switch (TREE_CODE (o20))
		  {
		  case SSA_NAME:
		    if (gimple *def_stmt = get_def (valueize, o20))
		      {
			if (gassign *def = dyn_cast <gassign *> (def_stmt))
			  switch (gimple_assign_rhs_code (def))
			    {
			    case BIT_AND_EXPR:
			      {
				tree o30 = gimple_assign_rhs1 (def);
				o30 = do_valueize (valueize, o30);
				tree o31 = gimple_assign_rhs2 (def);
				o31 = do_valueize (valueize, o31);
				if (tree_swap_operands_p (o30, o31))
				  std::swap (o30, o31);
				if (integer_pow2p (o31))
				  {
				    if (integer_zerop (o21))
				      {
					switch (TREE_CODE (op1))
					  {
					  case INTEGER_CST:
					    {
					      if (integer_zerop (op2))
						{
						  {
/* #line 3817 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						    tree captures[3] ATTRIBUTE_UNUSED = { o30, o31, op1 };
						    if (gimple_simplify_114 (res_op, seq, valueize, type, captures))
						      return true;
						  }
					        }
					      break;
					    }
				          default:;
				          }
				      }
				  }
			        break;
			      }
			    default:;
			    }
		      }
		    break;
	          default:;
	          }
	      }
	  }
        break;
      }
    case LT_EXPR:
      {
	tree o20 = TREE_OPERAND (op0, 0);
	if ((TREE_CODE (o20) == SSA_NAME
	     || is_gimple_min_invariant (o20)))
	  {
	    o20 = do_valueize (valueize, o20);
	    tree o21 = TREE_OPERAND (op0, 1);
	    if ((TREE_CODE (o21) == SSA_NAME
	         || is_gimple_min_invariant (o21)))
	      {
		o21 = do_valueize (valueize, o21);
		if (integer_zerop (o21))
		  {
		    switch (TREE_CODE (op1))
		      {
		      case INTEGER_CST:
		        {
			  if (integer_zerop (op2))
			    {
			      {
/* #line 3848 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[2] ATTRIBUTE_UNUSED = { o20, op1 };
				if (gimple_simplify_104 (res_op, seq, valueize, type, captures))
				  return true;
			      }
			    }
		          break;
		        }
		      default:;
		      }
		  }
	      }
	  }
        break;
      }
    default:;
    }
{
  tree op0_pops[1];
  if (gimple_logical_inverted_value (op0, op0_pops, valueize))
    {
      tree o20 = op0_pops[0];
      if (gimple_truth_valued_p (o20, valueize))
	{
	  {
/* #line 3103 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3103, __FILE__, __LINE__);
	    res_op->set_op (COND_EXPR, type, 3);
	    res_op->ops[0] = captures[0];
	    res_op->ops[1] = captures[2];
	    res_op->ops[2] = captures[1];
	    gimple_resimplify3 (lseq, res_op, valueize);
	    return true;
	  }
        }
}
}
  return false;
}

static bool
gimple_simplify_VEC_COND_EXPR (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case VECTOR_CST:
      {
	{
/* #line 2887 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
/* #line 2887 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	  if (integer_all_onesp (captures[0]))
	    {
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2888, __FILE__, __LINE__);
	      tree tem;
	      tem = captures[1];
	      res_op->set_value (tem);
	      return true;
	    }
	  else
	    {
/* #line 2889 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      if (integer_zerop (captures[0]))
		{
		  gimple_seq *lseq = seq;
		  if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 2890, __FILE__, __LINE__);
		  tree tem;
		  tem = captures[2];
		  res_op->set_value (tem);
		  return true;
		}
	    }
	}
        break;
      }
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VEC_COND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_assign_rhs3 (def);
		  o32 = do_valueize (valueize, o32);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 3077 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, o31, o32, op2 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3077, __FILE__, __LINE__);
			res_op->set_op (VEC_COND_EXPR, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[0] = unshare_expr (res_op->ops[0]);
			res_op->ops[1] = captures[1];
			res_op->ops[2] = captures[3];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VEC_COND_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_assign_rhs3 (def);
		  o42 = do_valueize (valueize, o42);
		  if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
		    {
		      {
/* #line 3080 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[4] ATTRIBUTE_UNUSED = { op0, op1, o41, o42 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3080, __FILE__, __LINE__);
			res_op->set_op (VEC_COND_EXPR, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[0] = unshare_expr (res_op->ops[0]);
			res_op->ops[1] = captures[1];
			res_op->ops[2] = captures[3];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		    }
		  {
/* #line 3088 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42 };
/* #line 3088 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (inverse_conditions_p (captures[0], captures[2]))
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3089, __FILE__, __LINE__);
			res_op->set_op (VEC_COND_EXPR, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[0] = unshare_expr (res_op->ops[0]);
			res_op->ops[1] = captures[1];
			res_op->ops[2] = captures[3];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VEC_COND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_assign_rhs3 (def);
		  o32 = do_valueize (valueize, o32);
		  {
/* #line 3092 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o31, o32, op2 };
/* #line 3092 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (inverse_conditions_p (captures[0], captures[1]))
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3093, __FILE__, __LINE__);
			res_op->set_op (VEC_COND_EXPR, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[0] = unshare_expr (res_op->ops[0]);
			res_op->ops[1] = captures[3];
			res_op->ops[2] = captures[4];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if ((op2 == op1 && ! TREE_SIDE_EFFECTS (op2)) || (operand_equal_p (op2, op1, 0) && types_match (op2, op1)))
    {
      {
/* #line 3098 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
	gimple_seq *lseq = seq;
	if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3098, __FILE__, __LINE__);
	tree tem;
	tem = captures[1];
	res_op->set_value (tem);
	return true;
      }
    }
  {
    tree op0_pops[1];
    if (gimple_logical_inverted_value (op0, op0_pops, valueize))
      {
	tree o20 = op0_pops[0];
	if (gimple_truth_valued_p (o20, valueize))
	  {
	    {
/* #line 3103 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	      tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
	      gimple_seq *lseq = seq;
	      if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 3103, __FILE__, __LINE__);
	      res_op->set_op (VEC_COND_EXPR, type, 3);
	      res_op->ops[0] = captures[0];
	      res_op->ops[1] = captures[2];
	      res_op->ops[2] = captures[1];
	      gimple_resimplify3 (lseq, res_op, valueize);
	      return true;
	    }
	  }
}
  }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o30) == SSA_NAME
		       || is_gimple_min_invariant (o30)))
		    {
		      o30 = do_valueize (valueize, o30);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case PLUS_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, PLUS_EXPR, CFN_COND_ADD))
					  return true;
				      }
				      break;
				    }
				  case MINUS_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, MINUS_EXPR, CFN_COND_SUB))
					  return true;
				      }
				      break;
				    }
				  case MULT_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, MULT_EXPR, CFN_COND_MUL))
					  return true;
				      }
				      break;
				    }
				  case TRUNC_DIV_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR, CFN_COND_DIV))
					  return true;
				      }
				      break;
				    }
				  case TRUNC_MOD_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR, CFN_COND_MOD))
					  return true;
				      }
				      break;
				    }
				  case RDIV_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, RDIV_EXPR, CFN_COND_RDIV))
					  return true;
				      }
				      break;
				    }
				  case MIN_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, MIN_EXPR, CFN_COND_MIN))
					  return true;
				      }
				      break;
				    }
				  case MAX_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, MAX_EXPR, CFN_COND_MAX))
					  return true;
				      }
				      break;
				    }
				  case BIT_AND_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_COND_AND))
					  return true;
				      }
				      break;
				    }
				  case BIT_IOR_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_COND_IOR))
					  return true;
				      }
				      break;
				    }
				  case BIT_XOR_EXPR:
				    {
				      tree o40 = gimple_assign_rhs1 (def);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_assign_rhs2 (def);
				      o41 = do_valueize (valueize, o41);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, op2 };
					if (gimple_simplify_191 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_COND_XOR))
					  return true;
				      }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, PLUS_EXPR, CFN_COND_ADD))
		      return true;
		  }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, MINUS_EXPR, CFN_COND_SUB))
		      return true;
		  }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, MULT_EXPR, CFN_COND_MUL))
		      return true;
		  }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR, CFN_COND_DIV))
		      return true;
		  }
	          break;
	        }
	      case TRUNC_MOD_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR, CFN_COND_MOD))
		      return true;
		  }
	          break;
	        }
	      case RDIV_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, RDIV_EXPR, CFN_COND_RDIV))
		      return true;
		  }
	          break;
	        }
	      case MIN_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, MIN_EXPR, CFN_COND_MIN))
		      return true;
		  }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, MAX_EXPR, CFN_COND_MAX))
		      return true;
		  }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_COND_AND))
		      return true;
		  }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_COND_IOR))
		      return true;
		  }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_assign_rhs2 (def);
		  o31 = do_valueize (valueize, o31);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5198 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, op2 };
		    if (gimple_simplify_191 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_COND_XOR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o40 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o40) == SSA_NAME
		       || is_gimple_min_invariant (o40)))
		    {
		      o40 = do_valueize (valueize, o40);
		      switch (TREE_CODE (o40))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o40))
			    {
			      if (gassign *def = dyn_cast <gassign *> (def_stmt))
			        switch (gimple_assign_rhs_code (def))
				  {
				  case PLUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, PLUS_EXPR, CFN_COND_ADD))
					  return true;
				      }
				      break;
				    }
				  case MINUS_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, MINUS_EXPR, CFN_COND_SUB))
					  return true;
				      }
				      break;
				    }
				  case MULT_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, MULT_EXPR, CFN_COND_MUL))
					  return true;
				      }
				      break;
				    }
				  case TRUNC_DIV_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR, CFN_COND_DIV))
					  return true;
				      }
				      break;
				    }
				  case TRUNC_MOD_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR, CFN_COND_MOD))
					  return true;
				      }
				      break;
				    }
				  case RDIV_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, RDIV_EXPR, CFN_COND_RDIV))
					  return true;
				      }
				      break;
				    }
				  case MIN_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, MIN_EXPR, CFN_COND_MIN))
					  return true;
				      }
				      break;
				    }
				  case MAX_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, MAX_EXPR, CFN_COND_MAX))
					  return true;
				      }
				      break;
				    }
				  case BIT_AND_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_COND_AND))
					  return true;
				      }
				      break;
				    }
				  case BIT_IOR_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_COND_IOR))
					  return true;
				      }
				      break;
				    }
				  case BIT_XOR_EXPR:
				    {
				      tree o50 = gimple_assign_rhs1 (def);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_assign_rhs2 (def);
				      o51 = do_valueize (valueize, o51);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51 };
					if (gimple_simplify_119 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_COND_XOR))
					  return true;
				      }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      case PLUS_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, PLUS_EXPR, CFN_COND_ADD))
		      return true;
		  }
	          break;
	        }
	      case MINUS_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, MINUS_EXPR, CFN_COND_SUB))
		      return true;
		  }
	          break;
	        }
	      case MULT_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, MULT_EXPR, CFN_COND_MUL))
		      return true;
		  }
	          break;
	        }
	      case TRUNC_DIV_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, TRUNC_DIV_EXPR, CFN_COND_DIV))
		      return true;
		  }
	          break;
	        }
	      case TRUNC_MOD_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, TRUNC_MOD_EXPR, CFN_COND_MOD))
		      return true;
		  }
	          break;
	        }
	      case RDIV_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, RDIV_EXPR, CFN_COND_RDIV))
		      return true;
		  }
	          break;
	        }
	      case MIN_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, MIN_EXPR, CFN_COND_MIN))
		      return true;
		  }
	          break;
	        }
	      case MAX_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, MAX_EXPR, CFN_COND_MAX))
		      return true;
		  }
	          break;
	        }
	      case BIT_AND_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, BIT_AND_EXPR, CFN_COND_AND))
		      return true;
		  }
	          break;
	        }
	      case BIT_IOR_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, BIT_IOR_EXPR, CFN_COND_IOR))
		      return true;
		  }
	          break;
	        }
	      case BIT_XOR_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_assign_rhs2 (def);
		  o41 = do_valueize (valueize, o41);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5204 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41 };
		    if (gimple_simplify_119 (res_op, seq, valueize, type, captures, BIT_XOR_EXPR, CFN_COND_XOR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o30) == SSA_NAME
		       || is_gimple_min_invariant (o30)))
		    {
		      o30 = do_valueize (valueize, o30);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_FMA:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5214 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42, op2 };
					if (gimple_simplify_194 (res_op, seq, valueize, type, captures, CFN_FMA, CFN_COND_FMA))
					  return true;
				      }
				      break;
				    }
				  case CFN_FMS:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5214 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42, op2 };
					if (gimple_simplify_194 (res_op, seq, valueize, type, captures, CFN_FMS, CFN_COND_FMS))
					  return true;
				      }
				      break;
				    }
				  case CFN_FNMA:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5214 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42, op2 };
					if (gimple_simplify_194 (res_op, seq, valueize, type, captures, CFN_FNMA, CFN_COND_FNMA))
					  return true;
				      }
				      break;
				    }
				  case CFN_FNMS:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      if (tree_swap_operands_p (o40, o41))
				        std::swap (o40, o41);
				      {
/* #line 5214 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, o30, o40, o41, o42, op2 };
					if (gimple_simplify_194 (res_op, seq, valueize, type, captures, CFN_FNMS, CFN_COND_FNMS))
					  return true;
				      }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_FMA:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5214 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32, op2 };
		    if (gimple_simplify_194 (res_op, seq, valueize, type, captures, CFN_FMA, CFN_COND_FMA))
		      return true;
		  }
	          break;
	        }
	      case CFN_FMS:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5214 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32, op2 };
		    if (gimple_simplify_194 (res_op, seq, valueize, type, captures, CFN_FMS, CFN_COND_FMS))
		      return true;
		  }
	          break;
	        }
	      case CFN_FNMA:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5214 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32, op2 };
		    if (gimple_simplify_194 (res_op, seq, valueize, type, captures, CFN_FNMA, CFN_COND_FNMA))
		      return true;
		  }
	          break;
	        }
	      case CFN_FNMS:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  if (tree_swap_operands_p (o30, o31))
		    std::swap (o30, o31);
		  {
/* #line 5214 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o30, o31, o32, op2 };
		    if (gimple_simplify_194 (res_op, seq, valueize, type, captures, CFN_FNMS, CFN_COND_FNMS))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o40 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o40) == SSA_NAME
		       || is_gimple_min_invariant (o40)))
		    {
		      o40 = do_valueize (valueize, o40);
		      switch (TREE_CODE (o40))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o40))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_FMA:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5220 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51, o52 };
					if (gimple_simplify_121 (res_op, seq, valueize, type, captures, CFN_FMA, CFN_COND_FMA))
					  return true;
				      }
				      break;
				    }
				  case CFN_FMS:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5220 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51, o52 };
					if (gimple_simplify_121 (res_op, seq, valueize, type, captures, CFN_FMS, CFN_COND_FMS))
					  return true;
				      }
				      break;
				    }
				  case CFN_FNMA:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5220 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51, o52 };
					if (gimple_simplify_121 (res_op, seq, valueize, type, captures, CFN_FNMA, CFN_COND_FNMA))
					  return true;
				      }
				      break;
				    }
				  case CFN_FNMS:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      if (tree_swap_operands_p (o50, o51))
				        std::swap (o50, o51);
				      {
/* #line 5220 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o50, o51, o52 };
					if (gimple_simplify_121 (res_op, seq, valueize, type, captures, CFN_FNMS, CFN_COND_FNMS))
					  return true;
				      }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_FMA:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5220 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41, o42 };
		    if (gimple_simplify_121 (res_op, seq, valueize, type, captures, CFN_FMA, CFN_COND_FMA))
		      return true;
		  }
	          break;
	        }
	      case CFN_FMS:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5220 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41, o42 };
		    if (gimple_simplify_121 (res_op, seq, valueize, type, captures, CFN_FMS, CFN_COND_FMS))
		      return true;
		  }
	          break;
	        }
	      case CFN_FNMA:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5220 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41, o42 };
		    if (gimple_simplify_121 (res_op, seq, valueize, type, captures, CFN_FNMA, CFN_COND_FNMA))
		      return true;
		  }
	          break;
	        }
	      case CFN_FNMS:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  if (tree_swap_operands_p (o40, o41))
		    std::swap (o40, o41);
		  {
/* #line 5220 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, op2, o40, o41, o42 };
		    if (gimple_simplify_121 (res_op, seq, valueize, type, captures, CFN_FNMS, CFN_COND_FNMS))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o30) == SSA_NAME
		       || is_gimple_min_invariant (o30)))
		    {
		      o30 = do_valueize (valueize, o30);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_COND_ADD:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_ADD))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_SUB:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_SUB))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_MUL:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_MUL))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_DIV:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_DIV))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_MOD:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_MOD))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_RDIV:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_RDIV))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_MIN:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_MIN))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_MAX:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_MAX))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_AND:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_AND))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_IOR:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_IOR))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_XOR:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[5] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, op2 };
					    if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_XOR))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_COND_ADD:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_ADD))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_SUB:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_SUB))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_MUL:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_MUL))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_DIV:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_DIV))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_MOD:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_MOD))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_RDIV:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_RDIV))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_MIN:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_MIN))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_MAX:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_MAX))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_AND:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_AND))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_IOR:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_IOR))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_XOR:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5232 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[5] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, op2 };
			if (gimple_simplify_63 (res_op, seq, valueize, type, captures, CFN_COND_XOR))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o40 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o40) == SSA_NAME
		       || is_gimple_min_invariant (o40)))
		    {
		      o40 = do_valueize (valueize, o40);
		      switch (TREE_CODE (o40))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o40))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_COND_ADD:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_ADD))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_SUB:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_SUB))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_MUL:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_MUL))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_DIV:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_DIV))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_MOD:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_MOD))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_RDIV:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_RDIV))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_MIN:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_MIN))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_MAX:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_MAX))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_AND:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_AND))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_IOR:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_IOR))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_XOR:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53 };
					if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_XOR))
					  return true;
				      }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_COND_ADD:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_ADD))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_SUB:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_SUB))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_MUL:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_MUL))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_DIV:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_DIV))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_MOD:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_MOD))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_RDIV:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_RDIV))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_MIN:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_MIN))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_MAX:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_MAX))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_AND:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_AND))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_IOR:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_IOR))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_XOR:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  {
/* #line 5237 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[6] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43 };
		    if (gimple_simplify_156 (res_op, seq, valueize, type, captures, CFN_COND_XOR))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o30 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o30) == SSA_NAME
		       || is_gimple_min_invariant (o30)))
		    {
		      o30 = do_valueize (valueize, o30);
		      switch (TREE_CODE (o30))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o30))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_COND_FMA:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      tree o44 = gimple_call_arg (def, 4);
				      o44 = do_valueize (valueize, o44);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5246 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[6] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, o44, op2 };
					    if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_COND_FMA))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_FMS:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      tree o44 = gimple_call_arg (def, 4);
				      o44 = do_valueize (valueize, o44);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5246 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[6] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, o44, op2 };
					    if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_COND_FMS))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_FNMA:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      tree o44 = gimple_call_arg (def, 4);
				      o44 = do_valueize (valueize, o44);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5246 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[6] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, o44, op2 };
					    if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_COND_FNMA))
					      return true;
					  }
				        }
				      break;
				    }
				  case CFN_COND_FNMS:
				    {
				      tree o40 = gimple_call_arg (def, 0);
				      o40 = do_valueize (valueize, o40);
				      tree o41 = gimple_call_arg (def, 1);
				      o41 = do_valueize (valueize, o41);
				      tree o42 = gimple_call_arg (def, 2);
				      o42 = do_valueize (valueize, o42);
				      tree o43 = gimple_call_arg (def, 3);
				      o43 = do_valueize (valueize, o43);
				      tree o44 = gimple_call_arg (def, 4);
				      o44 = do_valueize (valueize, o44);
				      if ((o40 == op0 && ! TREE_SIDE_EFFECTS (o40)) || (operand_equal_p (o40, op0, 0) && types_match (o40, op0)))
					{
					  {
/* #line 5246 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    tree captures[6] ATTRIBUTE_UNUSED = { op0, o41, o42, o43, o44, op2 };
					    if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_COND_FNMS))
					      return true;
					  }
				        }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_COND_FMA:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  tree o34 = gimple_call_arg (def, 4);
		  o34 = do_valueize (valueize, o34);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5246 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[6] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, o34, op2 };
			if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_COND_FMA))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_FMS:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  tree o34 = gimple_call_arg (def, 4);
		  o34 = do_valueize (valueize, o34);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5246 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[6] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, o34, op2 };
			if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_COND_FMS))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_FNMA:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  tree o34 = gimple_call_arg (def, 4);
		  o34 = do_valueize (valueize, o34);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5246 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[6] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, o34, op2 };
			if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_COND_FNMA))
			  return true;
		      }
		    }
	          break;
	        }
	      case CFN_COND_FNMS:
	        {
		  tree o30 = gimple_call_arg (def, 0);
		  o30 = do_valueize (valueize, o30);
		  tree o31 = gimple_call_arg (def, 1);
		  o31 = do_valueize (valueize, o31);
		  tree o32 = gimple_call_arg (def, 2);
		  o32 = do_valueize (valueize, o32);
		  tree o33 = gimple_call_arg (def, 3);
		  o33 = do_valueize (valueize, o33);
		  tree o34 = gimple_call_arg (def, 4);
		  o34 = do_valueize (valueize, o34);
		  if ((o30 == op0 && ! TREE_SIDE_EFFECTS (o30)) || (operand_equal_p (o30, op0, 0) && types_match (o30, op0)))
		    {
		      {
/* #line 5246 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[6] ATTRIBUTE_UNUSED = { op0, o31, o32, o33, o34, op2 };
			if (gimple_simplify_197 (res_op, seq, valueize, type, captures, CFN_COND_FNMS))
			  return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o40 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o40) == SSA_NAME
		       || is_gimple_min_invariant (o40)))
		    {
		      o40 = do_valueize (valueize, o40);
		      switch (TREE_CODE (o40))
		        {
			case SSA_NAME:
			  if (gimple *def_stmt = get_def (valueize, o40))
			    {
			      if (gcall *def = dyn_cast <gcall *> (def_stmt))
			        switch (gimple_call_combined_fn (def))
				  {
				  case CFN_COND_FMA:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      tree o54 = gimple_call_arg (def, 4);
				      o54 = do_valueize (valueize, o54);
				      {
/* #line 5251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53, o54 };
					if (gimple_simplify_92 (res_op, seq, valueize, type, captures, CFN_COND_FMA))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_FMS:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      tree o54 = gimple_call_arg (def, 4);
				      o54 = do_valueize (valueize, o54);
				      {
/* #line 5251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53, o54 };
					if (gimple_simplify_92 (res_op, seq, valueize, type, captures, CFN_COND_FMS))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_FNMA:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      tree o54 = gimple_call_arg (def, 4);
				      o54 = do_valueize (valueize, o54);
				      {
/* #line 5251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53, o54 };
					if (gimple_simplify_92 (res_op, seq, valueize, type, captures, CFN_COND_FNMA))
					  return true;
				      }
				      break;
				    }
				  case CFN_COND_FNMS:
				    {
				      tree o50 = gimple_call_arg (def, 0);
				      o50 = do_valueize (valueize, o50);
				      tree o51 = gimple_call_arg (def, 1);
				      o51 = do_valueize (valueize, o51);
				      tree o52 = gimple_call_arg (def, 2);
				      o52 = do_valueize (valueize, o52);
				      tree o53 = gimple_call_arg (def, 3);
				      o53 = do_valueize (valueize, o53);
				      tree o54 = gimple_call_arg (def, 4);
				      o54 = do_valueize (valueize, o54);
				      {
/* #line 5251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o50, o51, o52, o53, o54 };
					if (gimple_simplify_92 (res_op, seq, valueize, type, captures, CFN_COND_FNMS))
					  return true;
				      }
				      break;
				    }
				  default:;
				  }
			    }
			  break;
		        default:;
		        }
		    }
	          break;
	        }
	      default:;
	      }
	  else if (gcall *def = dyn_cast <gcall *> (def_stmt))
	    switch (gimple_call_combined_fn (def))
	      {
	      case CFN_COND_FMA:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  tree o44 = gimple_call_arg (def, 4);
		  o44 = do_valueize (valueize, o44);
		  {
/* #line 5251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43, o44 };
		    if (gimple_simplify_92 (res_op, seq, valueize, type, captures, CFN_COND_FMA))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_FMS:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  tree o44 = gimple_call_arg (def, 4);
		  o44 = do_valueize (valueize, o44);
		  {
/* #line 5251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43, o44 };
		    if (gimple_simplify_92 (res_op, seq, valueize, type, captures, CFN_COND_FMS))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_FNMA:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  tree o44 = gimple_call_arg (def, 4);
		  o44 = do_valueize (valueize, o44);
		  {
/* #line 5251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43, o44 };
		    if (gimple_simplify_92 (res_op, seq, valueize, type, captures, CFN_COND_FNMA))
		      return true;
		  }
	          break;
	        }
	      case CFN_COND_FNMS:
	        {
		  tree o40 = gimple_call_arg (def, 0);
		  o40 = do_valueize (valueize, o40);
		  tree o41 = gimple_call_arg (def, 1);
		  o41 = do_valueize (valueize, o41);
		  tree o42 = gimple_call_arg (def, 2);
		  o42 = do_valueize (valueize, o42);
		  tree o43 = gimple_call_arg (def, 3);
		  o43 = do_valueize (valueize, o43);
		  tree o44 = gimple_call_arg (def, 4);
		  o44 = do_valueize (valueize, o44);
		  {
/* #line 5251 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[7] ATTRIBUTE_UNUSED = { op0, op1, o40, o41, o42, o43, o44 };
		    if (gimple_simplify_92 (res_op, seq, valueize, type, captures, CFN_COND_FNMS))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_BIT_FIELD_REF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case BIT_FIELD_REF:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      tree o21 = TREE_OPERAND (gimple_assign_rhs1 (def), 1);
		      if ((TREE_CODE (o21) == SSA_NAME
		           || is_gimple_min_invariant (o21)))
		        {
			  o21 = do_valueize (valueize, o21);
			  tree o22 = TREE_OPERAND (gimple_assign_rhs1 (def), 2);
			  if ((TREE_CODE (o22) == SSA_NAME
			       || is_gimple_min_invariant (o22)))
			    {
			      o22 = do_valueize (valueize, o22);
			      {
/* #line 4966 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				tree captures[5] ATTRIBUTE_UNUSED = { o20, o21, o22, op1, op2 };
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4966, __FILE__, __LINE__);
				res_op->set_op (BIT_FIELD_REF, type, 3);
				res_op->ops[0] = captures[0];
				res_op->ops[1] = captures[3];
				res_op->ops[2] =  const_binop (PLUS_EXPR, bitsizetype, captures[2], captures[4]);
				gimple_resimplify3 (lseq, res_op, valueize);
				return true;
			      }
			    }
		        }
		    }
	          break;
	        }
	      case VIEW_CONVERT_EXPR:
	        {
		  tree o20 = TREE_OPERAND (gimple_assign_rhs1 (def), 0);
		  if ((TREE_CODE (o20) == SSA_NAME
		       || is_gimple_min_invariant (o20)))
		    {
		      o20 = do_valueize (valueize, o20);
		      {
/* #line 4970 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4970, __FILE__, __LINE__);
			res_op->set_op (BIT_FIELD_REF, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[1] = captures[1];
			res_op->ops[2] = captures[2];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  if (integer_zerop (op2))
    {
      {
/* #line 4974 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	tree captures[2] ATTRIBUTE_UNUSED = { op0, op1 };
/* #line 4974 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (captures[0]))))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4975, __FILE__, __LINE__);
	    res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
    }
  {
/* #line 4980 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
/* #line 4980 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
    if (TREE_CODE (TREE_TYPE (captures[0])) == COMPLEX_TYPE && tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
      {
/* #line 4983 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (integer_zerop (captures[2]))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4984, __FILE__, __LINE__);
	    res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
	    {
	      tree ops1[1], res;
	      ops1[0] = captures[0];
	      gimple_match_op tem_op (res_op->cond.any_else (), REALPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
	      gimple_resimplify1 (lseq, &tem_op, valueize);
	      res = maybe_push_res_to_seq (&tem_op, lseq);
	      if (!res) return false;
	      res_op->ops[0] = res;
	    }
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
	else
	  {
/* #line 4985 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	    if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
	      {
		gimple_seq *lseq = seq;
		if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 4986, __FILE__, __LINE__);
		res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
		{
		  tree ops1[1], res;
		  ops1[0] = captures[0];
		  gimple_match_op tem_op (res_op->cond.any_else (), IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (ops1[0])), ops1[0]);
		  gimple_resimplify1 (lseq, &tem_op, valueize);
		  res = maybe_push_res_to_seq (&tem_op, lseq);
		  if (!res) return false;
		  res_op->ops[0] = res;
		}
		gimple_resimplify1 (lseq, res_op, valueize);
		return true;
	      }
	  }
      }
    else
      {
/* #line 4987 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
	if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && INTEGRAL_TYPE_P (type) && (!1 || is_gimple_reg (captures[0])) && ((compare_tree_int (captures[1], TYPE_PRECISION (TREE_TYPE (captures[0]))) == 0 && integer_zerop (captures[2])) || (BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN && TYPE_PRECISION (TREE_TYPE (captures[0])) % BITS_PER_UNIT == 0 && TYPE_PRECISION (type) % BITS_PER_UNIT == 0 && compare_tree_int (captures[2], (BYTES_BIG_ENDIAN ? (TYPE_PRECISION (TREE_TYPE (captures[0])) - TYPE_PRECISION (type)) : 0)) == 0)))
	  {
	    gimple_seq *lseq = seq;
	    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5004, __FILE__, __LINE__);
	    res_op->set_op (NOP_EXPR, type, 1);
	    res_op->ops[0] = captures[0];
	    gimple_resimplify1 (lseq, res_op, valueize);
	    return true;
	  }
      }
  }
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case CONSTRUCTOR:
	        {
		  {
/* #line 5010 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, op2 };
/* #line 5010 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (VECTOR_TYPE_P (TREE_TYPE (captures[0])) && (types_match (type, TREE_TYPE (TREE_TYPE (captures[0]))) || (VECTOR_TYPE_P (type) && types_match (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (captures[0]))))))
		      {
			{
/* #line 5014 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 tree ctor = (TREE_CODE (captures[0]) == SSA_NAME ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
 tree eltype = TREE_TYPE (TREE_TYPE (ctor));
 unsigned HOST_WIDE_INT width = tree_to_uhwi (TYPE_SIZE (eltype));
 unsigned HOST_WIDE_INT n = tree_to_uhwi (captures[1]);
 unsigned HOST_WIDE_INT idx = tree_to_uhwi (captures[2]);
/* #line 5023 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (n != 0 && (idx % width) == 0 && (n % width) == 0 && known_le ((idx + n) / width, TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor))))
			      {
				{
/* #line 5028 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 idx = idx / width;
 n = n / width;
 poly_uint64 k = 1;
 if (CONSTRUCTOR_NELTS (ctor) != 0) { tree cons_elem = TREE_TYPE (CONSTRUCTOR_ELT (ctor, 0)->value);
 if (TREE_CODE (cons_elem) == VECTOR_TYPE) k = TYPE_VECTOR_SUBPARTS (cons_elem);
 } unsigned HOST_WIDE_INT elt, count, const_k;
/* #line 5044 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    if (multiple_p (idx, k, &elt) && multiple_p (n, k, &count))
				      {
/* #line 5045 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (CONSTRUCTOR_NELTS (ctor) == 0)
					  {
					    gimple_seq *lseq = seq;
					    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5046, __FILE__, __LINE__);
					    tree tem;
					    tem =  build_constructor (type, NULL);
					    res_op->set_value (tem);
					    return true;
					  }
					else
					  {
/* #line 5047 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (count == 1)
					      {
/* #line 5048 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						if (elt < CONSTRUCTOR_NELTS (ctor))
						  {
						    gimple_seq *lseq = seq;
						    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5049, __FILE__, __LINE__);
						    res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
						    res_op->ops[0] =  CONSTRUCTOR_ELT (ctor, elt)->value;
						    gimple_resimplify1 (lseq, res_op, valueize);
						    return true;
						  }
						else
						  {
						    gimple_seq *lseq = seq;
						    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5050, __FILE__, __LINE__);
						    tree tem;
						    tem =  build_zero_cst (type);
						    res_op->set_value (tem);
						    return true;
						  }
					      }
					    else
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5051, __FILE__, __LINE__);
						tree tem;
 vec<constructor_elt, va_gc> *vals;
 vec_alloc (vals, count);
 for (unsigned i = 0;
 i < count && elt + i < CONSTRUCTOR_NELTS (ctor);
 ++i) CONSTRUCTOR_APPEND_ELT (vals, NULL_TREE, CONSTRUCTOR_ELT (ctor, elt + i)->value);
						tem =  build_constructor (type, vals);
						res_op->set_value (tem);
						return true;
					      }
					  }
				      }
				    else
				      {
/* #line 5061 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					if (k.is_constant (&const_k) && idx + n <= (idx / const_k + 1) * const_k)
					  {
/* #line 5064 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
					    if (CONSTRUCTOR_NELTS (ctor) <= idx / const_k)
					      {
						gimple_seq *lseq = seq;
						if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5065, __FILE__, __LINE__);
						tree tem;
						tem =  build_zero_cst (type);
						res_op->set_value (tem);
						return true;
					      }
					    else
					      {
/* #line 5066 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
						if (n == const_k)
						  {
						    gimple_seq *lseq = seq;
						    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5067, __FILE__, __LINE__);
						    res_op->set_op (VIEW_CONVERT_EXPR, type, 1);
						    res_op->ops[0] =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
						    gimple_resimplify1 (lseq, res_op, valueize);
						    return true;
						  }
						else
						  {
						    gimple_seq *lseq = seq;
						    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5068, __FILE__, __LINE__);
						    res_op->set_op (BIT_FIELD_REF, type, 3);
						    res_op->ops[0] =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
						    res_op->ops[1] = captures[1];
						    res_op->ops[2] =  bitsize_int ((idx % const_k) * width);
						    gimple_resimplify3 (lseq, res_op, valueize);
						    return true;
						  }
					      }
					  }
				      }
				}
			      }
			}
		      }
		  }
	          break;
	        }
	      case BIT_INSERT_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  tree o21 = gimple_assign_rhs2 (def);
		  o21 = do_valueize (valueize, o21);
		  tree o22 = gimple_assign_rhs3 (def);
		  o22 = do_valueize (valueize, o22);
		  {
/* #line 5076 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[5] ATTRIBUTE_UNUSED = { o20, o21, o22, op1, op2 };
		    {
/* #line 5076 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
 unsigned HOST_WIDE_INT isize;
 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))) isize = TYPE_PRECISION (TREE_TYPE (captures[1]));
 else isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (captures[1])));
/* #line 5085 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			if (wi::leu_p (wi::to_wide (captures[2]), wi::to_wide (captures[4])) && wi::leu_p (wi::to_wide (captures[4]) + wi::to_wide (captures[3]), wi::to_wide (captures[2]) + isize))
			  {
			    gimple_seq *lseq = seq;
			    if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5088, __FILE__, __LINE__);
			    res_op->set_op (BIT_FIELD_REF, type, 3);
			    res_op->ops[0] = captures[1];
			    res_op->ops[1] = captures[3];
			    res_op->ops[2] =  wide_int_to_tree (bitsizetype, wi::to_wide (captures[4]) - wi::to_wide (captures[2]));
			    gimple_resimplify3 (lseq, res_op, valueize);
			    return true;
			  }
			else
			  {
/* #line 5091 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
			    if (wi::geu_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]) + wi::to_wide (captures[3])) || wi::geu_p (wi::to_wide (captures[4]), wi::to_wide (captures[2]) + isize))
			      {
				gimple_seq *lseq = seq;
				if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5095, __FILE__, __LINE__);
				res_op->set_op (BIT_FIELD_REF, type, 3);
				res_op->ops[0] = captures[0];
				res_op->ops[1] = captures[3];
				res_op->ops[2] = captures[4];
				gimple_resimplify3 (lseq, res_op, valueize);
				return true;
			      }
			  }
		    }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAF (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
		    if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF))
		      return true;
		  }
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
				    if (gimple_simplify_139 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, op2 };
		    if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o40 };
		    if (gimple_simplify_298 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o50 };
				    if (gimple_simplify_139 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAF))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMA (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
		    if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA))
		      return true;
		  }
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
				    if (gimple_simplify_139 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, op2 };
		    if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o40 };
		    if (gimple_simplify_298 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o50 };
				    if (gimple_simplify_139 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMA))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_BUILT_IN_FMAL (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
		    if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL))
		      return true;
		  }
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
				    if (gimple_simplify_139 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, op2 };
		    if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o40 };
		    if (gimple_simplify_298 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o50 };
				    if (gimple_simplify_139 (res_op, seq, valueize, type, captures, CFN_BUILT_IN_FMAL))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_FMA (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
		    if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_FMA))
		      return true;
		  }
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
				    if (gimple_simplify_139 (res_op, seq, valueize, type, captures, CFN_FMA))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, op2 };
		    if (gimple_simplify_82 (res_op, seq, valueize, type, captures, CFN_FMA))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o40 };
		    if (gimple_simplify_298 (res_op, seq, valueize, type, captures, CFN_FMA))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o50 };
				    if (gimple_simplify_139 (res_op, seq, valueize, type, captures, CFN_FMA))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_FMS (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
		    if (gimple_simplify_72 (res_op, seq, valueize, type, captures))
		      return true;
		  }
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
				    if (gimple_simplify_105 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, op2 };
		    if (gimple_simplify_72 (res_op, seq, valueize, type, captures))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o40 };
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (canonicalize_math_after_vectorization_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5118, __FILE__, __LINE__);
			res_op->set_op (CFN_FMA, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[1] = captures[1];
			res_op->ops[2] = captures[2];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o50 };
				    if (gimple_simplify_105 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_FNMA (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
		    if (gimple_simplify_195 (res_op, seq, valueize, type, captures))
		      return true;
		  }
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
				    if (gimple_simplify_230 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, op2 };
		    if (gimple_simplify_195 (res_op, seq, valueize, type, captures))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o40 };
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (canonicalize_math_after_vectorization_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5132, __FILE__, __LINE__);
			res_op->set_op (CFN_FNMS, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[1] = captures[1];
			res_op->ops[2] = captures[2];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o50 };
				    if (gimple_simplify_230 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify_CFN_FNMS (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper ARG_UNUSED (code), tree ARG_UNUSED (type)
, tree op0, tree op1, tree op2)
{
  switch (TREE_CODE (op0))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op0))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o20 = gimple_assign_rhs1 (def);
		  o20 = do_valueize (valueize, o20);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, op2 };
		    if (gimple_simplify_58 (res_op, seq, valueize, type, captures))
		      return true;
		  }
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o20, op1, o50 };
				    if (gimple_simplify_91 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, op2 };
		    if (gimple_simplify_58 (res_op, seq, valueize, type, captures))
		      return true;
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op2))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op2))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o40 = gimple_assign_rhs1 (def);
		  o40 = do_valueize (valueize, o40);
		  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    tree captures[3] ATTRIBUTE_UNUSED = { op0, op1, o40 };
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
		    if (canonicalize_math_after_vectorization_p ())
		      {
			gimple_seq *lseq = seq;
			if (__builtin_expect (dump_file && (dump_flags & TDF_FOLDING), 0)) fprintf (dump_file, "Applying pattern %s:%d, %s:%d\n", "match.pd", 5146, __FILE__, __LINE__);
			res_op->set_op (CFN_FNMA, type, 3);
			res_op->ops[0] = captures[0];
			res_op->ops[1] = captures[1];
			res_op->ops[2] = captures[2];
			gimple_resimplify3 (lseq, res_op, valueize);
			return true;
		      }
		  }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  switch (TREE_CODE (op1))
    {
    case SSA_NAME:
      if (gimple *def_stmt = get_def (valueize, op1))
        {
	  if (gassign *def = dyn_cast <gassign *> (def_stmt))
	    switch (gimple_assign_rhs_code (def))
	      {
	      case NEGATE_EXPR:
	        {
		  tree o30 = gimple_assign_rhs1 (def);
		  o30 = do_valueize (valueize, o30);
		  switch (TREE_CODE (op2))
		    {
		    case SSA_NAME:
		      if (gimple *def_stmt = get_def (valueize, op2))
		        {
			  if (gassign *def = dyn_cast <gassign *> (def_stmt))
			    switch (gimple_assign_rhs_code (def))
			      {
			      case NEGATE_EXPR:
			        {
				  tree o50 = gimple_assign_rhs1 (def);
				  o50 = do_valueize (valueize, o50);
				  {
/* #line 5097 "../../../../../../../work-shared/gcc-9.2.0-r0/gcc-9.2.0/gcc/match.pd" */
				    tree captures[3] ATTRIBUTE_UNUSED = { o30, op0, o50 };
				    if (gimple_simplify_91 (res_op, seq, valueize, type, captures))
				      return true;
				  }
			          break;
			        }
			      default:;
			      }
		        }
		      break;
		    default:;
		    }
	          break;
	        }
	      default:;
	      }
        }
      break;
    default:;
    }
  return false;
}

static bool
gimple_simplify (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper code, const tree type, tree op0, tree op1, tree op2)
{
  switch (code.get_rep())
    {
    case COND_EXPR:
      return gimple_simplify_COND_EXPR (res_op, seq, valueize, code, type, op0, op1, op2);
    case VEC_COND_EXPR:
      return gimple_simplify_VEC_COND_EXPR (res_op, seq, valueize, code, type, op0, op1, op2);
    case BIT_FIELD_REF:
      return gimple_simplify_BIT_FIELD_REF (res_op, seq, valueize, code, type, op0, op1, op2);
    case -CFN_BUILT_IN_FMAF:
      return gimple_simplify_CFN_BUILT_IN_FMAF (res_op, seq, valueize, code, type, op0, op1, op2);
    case -CFN_BUILT_IN_FMA:
      return gimple_simplify_CFN_BUILT_IN_FMA (res_op, seq, valueize, code, type, op0, op1, op2);
    case -CFN_BUILT_IN_FMAL:
      return gimple_simplify_CFN_BUILT_IN_FMAL (res_op, seq, valueize, code, type, op0, op1, op2);
    case -CFN_FMA:
      return gimple_simplify_CFN_FMA (res_op, seq, valueize, code, type, op0, op1, op2);
    case -CFN_FMS:
      return gimple_simplify_CFN_FMS (res_op, seq, valueize, code, type, op0, op1, op2);
    case -CFN_FNMA:
      return gimple_simplify_CFN_FNMA (res_op, seq, valueize, code, type, op0, op1, op2);
    case -CFN_FNMS:
      return gimple_simplify_CFN_FNMS (res_op, seq, valueize, code, type, op0, op1, op2);
    default:;
    }
  return false;
}

static bool
gimple_simplify (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper code, const tree type, tree op0, tree op1, tree op2, tree op3)
{
  switch (code.get_rep())
    {
    default:;
    }
  return false;
}

static bool
gimple_simplify (gimple_match_op *res_op, gimple_seq *seq,
                 tree (*valueize)(tree) ATTRIBUTE_UNUSED,
                 code_helper code, const tree type, tree op0, tree op1, tree op2, tree op3, tree op4)
{
  switch (code.get_rep())
    {
    default:;
    }
  return false;
}
